gpt4 book ai didi

java - 为什么for循环中三元运算符会出错?

转载 作者:行者123 更新时间:2023-12-02 01:30:19 25 4
gpt4 key购买 nike

我有一个关于 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);
}
}

最佳答案

它不是那样工作的。三元运算符需要表达式。定义如下所示

ConditionalExpression:
ConditionalOrExpression
ConditionalOrExpression ? Expression : ConditionalExpression

您有两个语句。您可以使用普通的 if-else 或将其更改为这样的分配

sum += i%2 == 0 ? i/2 : i/2+1;

关于java - 为什么for循环中三元运算符会出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56186023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com