在 java 中使用三元运算符添加值时出现错误值
wrong value coming when adding values using ternary operator in java
即使我将它添加到 for 循环中,sum 的值也没有改变。 diff 的值为 3
正在打印的值在初始迭代中类似于 3 3 3,应该是 3 6 9。
有人可以帮忙吗?
loop start
sum = sum + diff<(26-diff)?diff:(26-diff);
loop end
计算你的数值表达式的优先顺序是导致你得到错误结果的原因。您当前的陈述等同于:
sum = (sum + diff)<(26-diff)?diff:(26-diff);
等等于 diff
的值,它总是 3
。将您的声明更改为:
sum = sum + (diff<(26-diff)?diff:(26-diff));
你会得到你期望的行为。您还可以使用 +=
运算符通过将语句更改为:
来解决此问题
sum += diff<(26-diff)?diff:(26-diff);
即使我将它添加到 for 循环中,sum 的值也没有改变。 diff 的值为 3
正在打印的值在初始迭代中类似于 3 3 3,应该是 3 6 9。 有人可以帮忙吗?
loop start
sum = sum + diff<(26-diff)?diff:(26-diff);
loop end
计算你的数值表达式的优先顺序是导致你得到错误结果的原因。您当前的陈述等同于:
sum = (sum + diff)<(26-diff)?diff:(26-diff);
等等于 diff
的值,它总是 3
。将您的声明更改为:
sum = sum + (diff<(26-diff)?diff:(26-diff));
你会得到你期望的行为。您还可以使用 +=
运算符通过将语句更改为:
sum += diff<(26-diff)?diff:(26-diff);