【问题标题】:I cannot find the logic error in this conditional statement. I don't exactly know where my logic is incorrect我在这个条件语句中找不到逻辑错误。我不完全知道我的逻辑在哪里不正确
【发布时间】:2018-10-09 22:19:26
【问题描述】:

我有以下说法……

personName[0] = n[y].getName().equals ("Penny") ? personName[0]++ : personName[0];

personName[] 是一个整数数组。 getName 返回一个字符串。每次getName 等于to "Penny," 我希望personName[0] 加一个。我该怎么做?当我运行它时,personName[0] 没有添加一个,我不知道为什么。

【问题讨论】:

  • 错误是什么?
  • 看起来类似于 i = i++; 错误。不要这样做
  • 我刚刚对问题做了一些修改。
  • 看看这个,stackoverflow.com/a/1968420/1256113。问题是personName[0]++ 在递增之前返回personName[0] 的值,而不是之后。

标签: java


【解决方案1】:

不要试图像这样滥用条件运算符。一个普通的旧 if 更具可读性和简洁性:

if (n[y].getName().equals ("Penny")) {
  personName[0]++;
}

如果您必须使用条件运算符,使用+=会更清楚:

personName[0] += n[y].getName().equals ("Penny") ? 1 : 0;

【讨论】:

    【解决方案2】:

    如果您只想增加personName[0],只使用if 不是更好吗?有时,条件运算符非常适合简单的问题。

    【讨论】:

    • 如果您可以在答案中提供支持代码的示例,它会对原始提问者有所帮助。在这种情况下,如果您可以将条件语句改写为普通的 if 语句,并解释为什么它比提供的原始代码示例更好,将会更有帮助。
    • @anothermh,感谢您的解释!下次我会做的。
    猜你喜欢
    • 1970-01-01
    • 2019-07-09
    • 1970-01-01
    • 1970-01-01
    • 2014-03-03
    • 1970-01-01
    • 2015-08-01
    • 1970-01-01
    • 2020-07-28
    相关资源
    最近更新 更多