这两行陈述有何不同?
a<=20? b=30: c= 30;
(a<=20)?b:c = 30;
如果我给a = 20的值那么
第一行给出b = 20,c = 0 第二行给出b = 0,c = 0
不是作业问题。
答案 0 :(得分:1)
根据ternary conditional operator的规则,
a<=20? b=30: c= 30;
与:
if (a <= 20) {
b = 30;
} else {
c = 30;
}
和(a<=20)?b:c = 30;
与:
if (a <= 20) {
b;
} else {
c = 30;
}
因此,案例#1和案例#2之间的区别在于条件为b
时是否true
被设置。
答案 1 :(得分:1)
运营商优先权:
这样:
(a<=20)?b:c = 30;
被解释为:
(a<=20) ? (b) : (c=30) ;
你可能想要
((a<=20)?b:c) = 30;