叫我冒哥
2016-09-04 20:54
int a=8,b=3,c=5;
double x = (a<c) ? b=c : a ;
System.out.println("输出的结果为:"+x);
上式在Eclipse中可以运行
但我把条件运算符稍微改一下
把表达式1与2换个位置 double x = (a<c) ? a : b=c ;
再运行就报错了
请问大神这是什么情况?
第一个不打括号也是可以运行的,相当于c给b赋值之后再给x赋值,但是第二个如果不打括号是c要给前面的表达式赋值,这样编译是会显示错误的。
我也刚学 你看看说的是这个意思不
还有,如图中所示:提问者三个字在圆括号中,那么不加圆括号能不能知道你是提问者?
答:有圆括号更容易知道(明白)。所以圆括号明知道加与不加均可,还是为了更简单读懂加上吧。
同学,你都逐一回复了,也给我回复吧!!!
int a=1,b=2,c=3,d=4;
a=b=c=d;
System.out.println(a);
提示b和c没使用过。
证明:double x = (a<c) ? a : b=c ; 中
(a<c) ? a : b也同样没有被使用。
( ̄▽ ̄)"
其实也很简单,第一个不用括号能行,那是因为(a<c)为false,然后它自动判断为:后面的a了;然而,第二次的为:后面的b=c,它就会混乱,它就不会把(b=c)看做整体,即:是b,但是又有=号又有c,误判地脱离了三目运算符了
double x = (a<c) ? a : b=c ;把b=c打个括号,即:double x = (a<c) ? a:(b=c ) ;
Java入门第一季(IDEA工具)升级版
1165550 学习 · 17586 问题
相似问题