我试图编写一个程序,如果在给定的数量中存在相同数量的赔率甚至数字,它会运行得很好但是它想要使用条件运算符而不是这4行(//行),
我得到了这个:
令牌上的语法错误"%",无效的AssignmentOperator
有人可以告诉我为什么吗?怎么了?
while(number!=0) {
//if(number%2==0)
//even++;
//else
//odd++;
number%2==0 ? even++ : odd++;
number/=10;
}
答案 0 :(得分:5)
number%2==0 ? even++ : odd++;
这不是声明。必须将三元的结果分配给某些东西:
int x = number % 2 == 0 ? even++ : odd++;
然而,这在风格上非常尴尬。我将使用if-else
(即你最初拥有的)这个模式。在这里,您创建了一个您永远不会重复使用的临时变量,仅用于使用三元组。
答案 1 :(得分:1)
它需要左侧的变量,您可以在条件之后放置值。
int tmp = (number%2 == 0)?even++:odd++;
答案 2 :(得分:0)
number%2==0 ? even++ : odd++;
此声明未向number指定任何值。据我所知,始终建议使用if-else
而不是三元运算符。
因为,在三元运算符中,必须写入false / else部分,其中if-else
else / false部分是可选的。
while(number!=0) {
//if(number%2==0)
//even++;
//else
//odd++;
int temp= number%2==0 ? even++ : odd++;
number/=10;
}
现在,temp
变量保持该值。