奇数或偶数的条件运算符

时间:2014-04-01 16:25:19

标签: java

我试图编写一个程序,如果在给定的数量中存在相同数量的赔率甚至数字,它会运行得很好但是它想要使用条件运算符而不是这4行(//行),

我得到了这个:

  

令牌上的语法错误"%",无效的AssignmentOperator

有人可以告诉我为什么吗?怎么了?

while(number!=0) {
    //if(number%2==0)
    //even++;
    //else
    //odd++;
    number%2==0 ? even++ : odd++;
    number/=10;
}

3 个答案:

答案 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变量保持该值。