我对Java中的三元运算符有疑问。 我遇到错误:
> Compilation error Main.java:14: error: unexpected type
> (i%2==0) ? sum += i/2 : sum += i/2+1;
> ^ required: variable found: value 1 error
我不明白为什么? 谢谢!
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] mas = {0,0,0};//new int[3];
int sum=0;
for (int i=0; i< mas.length; i++) {
mas[i] = scanner.nextInt();
}
for(int i : mas){
(i%2==0) ? sum += i/2 : sum += i/2+1;
// if(i%2 == 0) sum += i/2;
// else sum += i/2+1;
}
System.out.println(sum);
}
}
答案 0 :(得分:2)
它不能那样工作。三元运算符需要表达式。定义看起来像这样
ConditionalExpression:
ConditionalOrExpression
ConditionalOrExpression?表达式:ConditionalExpression
您有两个声明。您可以为此使用常规的if-else
或将其更改为这样的作业
sum += i%2 == 0 ? i/2 : i/2+1;
答案 1 :(得分:0)
您以不正确的方式声明它:
sum += (i%2==0) ? i/2 : i/2+1;
顺序为:变量,赋值运算符,条件,问号,条件满足时的值,否则值。