Java 这个结构有效吗?

Java 这个结构有效吗?,java,Java,我想创建一个紧凑的方法来计算前20个偶数的总和和前20个奇数的乘法。这是正确的吗 for(int i=0; i<=20; i++) { (i % 2 == 0) ? (sumEven +=i;) : (productoImpares *= i;) } 三元条件表达式生成一个值。你必须用这个值做些什么,把它分配给一个变量,从你的方法返回它,等等 在本例中,您是根据一个条件指定给两个不同变量中的一个。 这没有多大意义,一个普通的if-else更具可读性: in

我想创建一个紧凑的方法来计算前20个偶数的总和和前20个奇数的乘法。这是正确的吗

for(int i=0; i<=20; i++) {
            (i % 2 == 0) ? (sumEven +=i;) : (productoImpares *= i;)
    }

三元条件表达式生成一个值。你必须用这个值做些什么,把它分配给一个变量,从你的方法返回它,等等

在本例中,您是根据一个条件指定给两个不同变量中的一个。 这没有多大意义,一个普通的if-else更具可读性:

int sumEven = 0;
int productoImpares = 1;
for(int i=0; i<=20; i++) {
    if (i % 2 == 0) {
        sumEven += i;
    } else {
        productoImpares *= i;
    }
}
现在,如果您坚持使用三元条件运算符,可以按如下方式执行:

int sumEven = 0;
int productoImpares = 1;
for(int i=0; i<=20; i++) {
    int x = (i % 2 == 0) ? (sumEven += i) : (productoImpares *= i);
}

注意,虚拟变量xi用于分配三元条件表达式的值。我建议不要这样做。

@Eran并运行它。请解释您希望通过更简单的ifi%2==0{sumeen+=I;}或者{productoImpares*=I;}来获得什么。不,这在Java中是不正确的。Java不允许将任何表达式用作语句。它在语法上是正确的,但在其他一些语言中有一个小小的改变。如果你试图编译代码,你会得到一个错误。相反,您必须使用if/else语句。将答案发布为注释,以便您可以删除该问题。如果有一个向上投票的答案或多个答案,则不能删除该问题。