A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

旅行

中级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© 旅行 中级黑马   /  2013-12-23 17:48  /  1096 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 旅行 于 2013-12-23 19:13 编辑

int c = 38
                switch(c<10? 1 : c<25? 2 : c<35? 3 : 4)
这个switch里面出现三个三元运算符,我该怎么理解。

还有,怎么样将代码跟别人一样弄在网格里发帖或者回复?

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

4 个回复

倒序浏览
三元运算符是一个有返回值的表达式,所以不能执行无返回值语句,并且(表达式1 ? 表达式2 : 表达式3)中,表达式2和表达式3的数据类型必须相同.
结果是true JVM默认从左到右读取 格式为 false ?false:(false ?false:true)读到第一个? 就把false作为第一个结果 :后面的作为一个表达式结果

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
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
只有抓住格式,就不会晕了

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
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,然后把代码粘在弹出的对话框中,点提交即可。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
switch语句中的需要一层一层的来看。c的值初始化为38,先读第一句c<10,结果为false,所以?后面的第二句(即c<25)成立,再来判断38是否小于25,所以节后又为false,则又是?后面的第二句成立(即c<35),继续判读38是否小于35,结果又为false,所以最终结果也是?后面的第二句,即最终结果为4.
在发帖或者回复中有一对<>,即代码,在其中粘贴你的代码,发完贴后,即可出现代码模式(自己称呼的哈!!!)。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马