我想创建一个紧凑的方法tu计算前20个偶数的和与前20个奇数的乘积。这是正确的吗?
for(int i=0; i<=20; i++) {
(i % 2 == 0) ? (sumEven +=i;) : (productoImpares *= i;)
}
答案 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
。我建议不要这样做。