我在这个条件语句中找不到逻辑错误。我不完全知道我的逻辑在哪里不正确
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”的接口声明
我在 .net 应用程序中找不到 microsoft.office.interop.excel