这个结构有效吗?

时间:2019-12-15 10:08:57

标签: java

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

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

1 个答案:

答案 0 :(得分:0)

三元条件表达式产生一个值。您必须使用该值执行某些操作(将其分配给变量,从您的方法中将其返回,等等)。

在您的情况下,您将根据条件分配给两个不同的变量之一。 这没有多大意义,而常规的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);
}

请注意,我用来分配三元条件表达式的值的伪变量x。我建议不要这样做。