献给以人的思维去学编程的朋友们 之 if
2015-09-10 23:56
232 查看
在我的某个群里有个人问了一个很有趣的问题:
如何在三个值里找出最大的一个,int型。
比如下面代码:
群里的同学踊跃回答如:
等等答案。但是对于提问的同学来讲,他还是不懂,不理解,不会~~~
@%#……¥%……¥我还没有学到else。。。
@¥%……%&%……&我还没学三元运算符。。。
¥%……¥%&@#¥位操作?
好吧,其实不管怎么样,我是挺佩服提问的人的,不能说人家蠢,你要是聪明我估计你一开始几个不会就直接放弃打游戏去了。
后来,他问了一个问题:
他说他不明白下面一行代码:
其实不管怎么样,我表示真的很无语,对于很多路过的学生来讲,或许一看if就知道是什么意思了,何况大于小于符号&&。。。
下面我想了想,给他的答案。
下面说的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里面
希望对有些朋友有帮助吧,谢谢!!!!
如何在三个值里找出最大的一个,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里面
希望对有些朋友有帮助吧,谢谢!!!!
相关文章推荐
- 走进spring之springmvc实战篇(一)
- 软件研发:公司内部技术考试——算法编程题程序框架
- 软件研发:公司内部技术考试——算法编程题程序框架
- C++ lambda表达式
- 视频直播编码,如何驾驭超复杂业务逻辑而不失漂亮的代码
- Python POST实现发送Ajax的两个坑
- 【英语】Bingo口语笔记(77) - 临时改变计划的表达
- Java的单例模式与延时加载
- Java:重写equals()和hashCode()
- 关于java内部类加载顺序的问题
- java中实现35选7的为随机,选出7个不重复的随机整数之hashmap去重
- 【英语】Bingo口语笔记(76) - 不知如何应答的场景对话
- ThinkPHP缓存
- 我的S5pv210裸机编程
- 【英语】Bingo口语笔记(75) - 元音辅音的辨读
- Python ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。
- Java内部类的作用
- 解决No “rule to make target `../Database/images/login.png', needed by `debug/qrc_image.cpp'. Stop.”
- java之常量池
- C语言位运算详解