java - !(a==b) 和 a!=b 的区别

标签 java if-statement comparison equality

上周在高中时,我的 IT 老师给了我们一个程序,她写的一个部分让我很感兴趣。
在 if 语句中,她检查数组的元素是否不为 null,因此程序可以继续处理该元素,因此她写道:if (!(array[i] == null) ,这让我很困惑,因为使用这种方法,您只是更多地使用了括号,这使得阅读变得不那么容易。我把它改成了 ìf (array[i] != null)它工作得很好。但现在我很困惑,因为作为一名老师,我假设你对你的学科了解很多,那么她为什么用她的方法而不是我的方法有充分的理由吗?有什么我不知道的细节吗?

最佳答案

这两个表达式的语义没有区别。我会说没有充分的理由去写前者。

But now I am confused, because as a teacher I assume you know a lot of your subject, so could there be a good reason why she used her method over mine?


最好的办法是问你的老师。关于教师——作为人类——要记住的最重要的事情是他们有经验、有偏见并且容易犯错。
换句话说,她可能被过去的一些问题所困扰,通过这样写就解决了——问她这件事,你可能会学到一些东西。
或者,她可能认为这更好,并且无法表达个人偏好的强烈利益;或者那是她学习的方式,并且没有看到强烈需要改变 - 你从中学到了一些东西,只要有不止一种方式来表达相同的语义。
(我非常喜欢 !=,因为它更整洁——括号更少;如果你不打算使用它,为什么语言设计者还要费心提供 !=——但这些是我个人的偏好)。
或者,她可能打算使用 != ,忘记回去修了。很容易忘记清理东西。

关于java - !(a==b) 和 a!=b 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63558168/

相关文章:

java - 除以零而不出现 ArithmeticException

regex - 正则表达式之间的距离

c - 来自 int 的基本 C 强制转换警告指针

jakarta-ee - Mule ESB和java企业应用服务器的区别

c# - .NET 相当于 java.awt.color.ColorSpace

java - 将 ArrayList 转换为数组

python - Python 中的 if 和 else 条件问题

java - 在 hibernate 工具 hbm2ddl 中支持 @ElementCollection

java - 返回 String s 中 chars 中任何字符第一次出现的索引或 -1

php - 如何使用 elesif 获取不同的错误消息