我在这个条件语句中找不到逻辑错误。我不完全知道我的逻辑在哪里不正确

Posted

技术标签:

【中文标题】我在这个条件语句中找不到逻辑错误。我不完全知道我的逻辑在哪里不正确【英文标题】: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++; 错误。不要这样做 我刚刚对问题做了一些修改。 看看这个,***.com/a/1968420/1256113。问题是personName[0]++ 在递增之前返回personName[0] 的值,而不是之后。 【参考方案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,感谢您的解释!下次我会做的。

以上是关于我在这个条件语句中找不到逻辑错误。我不完全知道我的逻辑在哪里不正确的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS Swift 项目中找不到“UIView”的接口声明

致命错误:在中找不到类 'Dotenv\Dotenv'

我在 .net 应用程序中找不到 microsoft.office.interop.excel

在 xcode 4 中找不到 info.plist

在我的 SQL 语法中找不到错误 - PHP(请查看语法手册?)

在 Angular + Spring Security 应用程序中找不到错误