首页 > 解决方案 > !(a==b) 和 a!=b 之间的区别

问题描述

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

标签: javaif-statementcomparisonequality

解决方案


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

但是现在我很困惑,因为作为一名老师,我假设您对您的学科了解很多,那么她是否有充分的理由使用她的方法而不是我的方法?

最好的办法是问你的老师。关于教师——作为人类——要记住的最重要的事情是他们有经验、偏见并且容易犯错。

换句话说,她过去可能被一些问题所困扰,通过这样写它来解决 - 问她,你可能会学到一些东西。

或者,她可能认为这样更好,并且无法清楚地表达对个人偏好的强烈好处;或者这就是她学习的方式,并且没有看到强烈的改变需要——你可以从中学到一些东西,只要有不止一种方法可以表达相同的语义。

(我非常喜欢它,因为它更简洁——括号更少;如果你不打算使用它!=,为什么语言设计者会费心提供——但这些是个人的偏好)。!=

或者,她可能打算使用!=,却忘了回去修复它。很容易忘记清理东西。


推荐阅读