您的位置:首页 > 编程语言

献给以人的思维去学编程的朋友们 之 if

2015-09-10 23:56 232 查看
在我的某个群里有个人问了一个很有趣的问题:

如何在三个值里找出最大的一个,int型。

比如下面代码:

int a = 5;
int b = 10;
int c = 2;

群里的同学踊跃回答如:
int max_a = a > b ? a : b;
int max_b = a > c ? a : c;
int max = max_a > max_b ? max_a : max_b;


max(max(a,b), max(a,c));


if(a〉b&&a〉c)
Max=a;
else  if(a〈b&&c〈b)
Max=b;
else  if(c〉a&&c〉b)
Max=c


if((a | b) > c){return a > b ? a : b;}
else {return c;}


等等答案。但是对于提问的同学来讲,他还是不懂,不理解,不会~~~

@%#……¥%……¥我还没有学到else。。。

@¥%……%&%……&我还没学三元运算符。。。

¥%……¥%&@#¥位操作?

好吧,其实不管怎么样,我是挺佩服提问的人的,不能说人家蠢,你要是聪明我估计你一开始几个不会就直接放弃打游戏去了。

后来,他问了一个问题:

他说他不明白下面一行代码:

if(a>b&&a>c)


其实不管怎么样,我表示真的很无语,对于很多路过的学生来讲,或许一看if就知道是什么意思了,何况大于小于符号&&。。。

下面我想了想,给他的答案。

下面说的if和else的构造如下,不包含其他情况,读者们注意:

if(...){}
else{}


&& 是并且的意思,,也就是说,左右2边的表达式必须满足条件,,才能执行if,

那怎么样满足条件?

那么很容易看出,,2边必须都满足a是最大的一个数,,这样才能满足表达式a>b. a>c

那么,如果满足条件,那么就表明,3个值里,,a是最大的,,否则,,注意,否则,,
也就是else,,else也就是否则的意思,也就是说,,

如果满足了if。就不会执行紧跟if后面的else,,否则如果if不满足,则执行紧跟if后面的else
那么就表明,最大的一个数在b或者c里,,那么你只要确定:

if(b<c) {c大}

else {b大}

你学到if,那么你应该知道:

if(真){执行。。。}

if(假){不执行。。。}
else总是跟if执行相反的过程,,但是只能执行if和else其中的一个,

if(a>b&&a>c)

不但计算机是一个解表达式的过程,,在你的脑子里也是一个解表达式的过程,
你可能在想,a 不一定大于 b 啊,,,c不一定大于a啊,,那 怎么执行?

我到底要怎么才能让他执行。

这是属于人的思维,不是计算机的思维,计算机没有这么复杂,他不会这么想,所以他也不会这么算,
那我该怎么想,计算机才能按照我的执行 ?
1、满足if,如何满足,让a最大,

2、如果你不确定a最大。那么你用一个else去描述,

这样你就能清楚的知道,,要么a最大,要么最大的一个值在b或者c里面

希望对有些朋友有帮助吧,谢谢!!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: