黑马程序员技术交流社区

标题: 关于三元运算符 [打印本页]

作者: Hison_lian    时间: 2015-5-11 22:09
标题: 关于三元运算符
请问在下面的语句中  (true)?a++ : b++;  a++会自增1,那么b++那?

作者: liya7907    时间: 2015-5-11 22:21
a++是先运算,再自增,b++不参与该次运算。
作者: liya7907    时间: 2015-5-11 22:23
int a = 3;
int b = 4;
int c = (true)?a++:b++;//c的结果是3,是a自增之前的结果.

作者: wangyu    时间: 2015-5-11 22:25
后面那俩只能执行一个
作者: 赵旗    时间: 2015-5-11 22:40
不会增加 true 只会执行第一条语句
作者: Hison_lian    时间: 2015-5-11 22:44
好的,谢谢
作者: as12510    时间: 2015-5-11 23:16
三元 只能输出一个 a++或者b++  所以 ture 的话 就运行a++  b不会运行的
作者: liujin    时间: 2015-5-11 23:32
三元运算符:如果判断条件满足则执行a++,如果不满足则执行b++
作者: 我干阿衰    时间: 2015-5-12 01:45
如  (flag)?  a++ : b++;   flag为真则执行b++,  假 则执行a++.
作者: 黑马小符    时间: 2015-5-12 06:56
哥们你三元运算符的格式都写错了,正确的格式是,条件表达式?条件表达式1:条件表达式2;
作者: YQliang    时间: 2015-5-12 08:20
true的时候是执行左边,false的时候是执行右边,没有被执行的就是跟原来一样
作者: 空--格    时间: 2015-5-12 21:40
一楼正解~~
作者: shao122791159    时间: 2015-5-12 21:43
b++这一句语句并不会执行,所以b的值没有发生改变
作者: rick1991chen    时间: 2015-5-12 21:43
问号左边为true的话就运行冒号左边,false就运行冒号右边
作者: V_nan    时间: 2015-5-12 21:52
ture执行表达式1,所以后面的不执行,就不自增

作者: 二大爷    时间: 2015-5-12 22:10
表达式为 true  就执行a++  ,表达式为 float  就执行b++
作者: Tony丶Just    时间: 2015-5-12 22:11
b++不参与该次运算。
作者: 冷月霜飞    时间: 2015-5-12 22:48
三元运算符也是个运算符,必然会有个结果,所以三元运算符中的两个值必然只能有一个执行,具体哪个执行,是要取决于条件表达式的
作者: youngzk    时间: 2015-5-12 23:13
可以自己做个测试




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2