【问题标题】:wrong value coming when adding values using ternary operator in java [closed]在java中使用三元运算符添加值时出现错误值[关闭]
【发布时间】:2020-10-11 14:19:35
【问题描述】:

即使我在 for 循环中添加 sum 的值,它也不会改变。 diff 的值为 3

打印的值在初始迭代中类似于 3 3 3,应该是 3 6 9。 有人可以帮忙吗?

     loop start           
     sum = sum + diff<(26-diff)?diff:(26-diff);
     loop end

【问题讨论】:

  • 您能否添加我们可以重现该场景的确切代码
  • diff&lt;(26-diff) 周围使用方括号以明确表示您不希望将表达式sum + diff 作为比较运算符的一部分。或使用sum += diff&lt;....
  • 这是什么语言?它看起来肯定不像 Java

标签: java conditional-operator


【解决方案1】:

计算数值表达式的优先顺序是导致您得到错误结果的原因。你现在的说法是这样的:

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);

【讨论】:

    猜你喜欢
    • 2013-12-22
    • 2020-08-02
    • 2022-01-11
    • 2012-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-31
    • 1970-01-01
    相关资源
    最近更新 更多