黑马程序员技术交流社区
标题:
switch语句中出现三元运算该怎么理解
[打印本页]
作者:
旅行
时间:
2013-12-23 17:48
标题:
switch语句中出现三元运算该怎么理解
本帖最后由 旅行 于 2013-12-23 19:13 编辑
int c = 38
;
switch(c<10? 1 : c<25? 2 : c<35? 3 : 4)
这个switch里面出现三个三元运算符,我该怎么理解。
还有,怎么样将代码跟别人一样弄在网格里发帖或者回复?
作者:
卖火柴
时间:
2013-12-23 18:32
三元运算符是一个有返回值的表达式,所以不能执行无返回值语句,并且(表达式1 ? 表达式2 : 表达式3)中,表达式2和表达式3的数据类型必须相同.
结果是true JVM默认从左到右读取 格式为 false ?false:(false ?false:true)读到第一个? 就把false作为第一个结果 :后面的作为一个表达式结果
作者:
(0.0)’
时间:
2013-12-23 18:40
int c = 38;
switch(c<10? 1 : c<25? 2 : c<35? 3 : 4)
其实记住格式就行 xxx ? yyy : zzz
1、把这里的 c <10 看作xxx部分
把1 看作 yyy部分
把c<25? 2: c<35 ? 3:4 整体看作 zzz部分
2、然后再继续解剖:
c< 25 ? 看作 xxx部分
把2 看作 yyy部分
把 c<35? 3:4 整体看作zzz部分
3、在解剖最后一次:
c< 35? 看作 xxx部分
把3 看做3部分
把4 看组 4部分
所以结果就是:4
只有抓住格式,就不会晕了
作者:
欢欢
时间:
2013-12-23 19:07
int c = 38;
switch(c<10? 1 : c<25? 2 : c<35? 3 : 4)
c < 10 为false,所以执行冒号右面的
c < 25 也为false,所以继续执行下一个冒号右边的
c < 35 也为false,所以最后结果为switch( 4 )。
还有,怎么样将代码跟别人一样弄在网格里发帖或者回复:
click“<>”button,然后把代码粘在弹出的对话框中,点提交即可。
作者:
松毛
时间:
2013-12-23 19:11
switch语句中的需要一层一层的来看。c的值初始化为38,先读第一句c<10,结果为false,所以?后面的第二句(即c<25)成立,再来判断38是否小于25,所以节后又为false,则又是?后面的第二句成立(即c<35),继续判读38是否小于35,结果又为false,所以最终结果也是?后面的第二句,即最终结果为4.
在发帖或者回复中有一对<>,即代码,在其中粘贴你的代码,发完贴后,即可出现代码模式(自己称呼的哈!!!)。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2