声明"=="条件的标准准则是什么?

amo*_*mod 1 c++ java

可能重复:
这些(bCondition == NULL)和(NULL == bCondition)有什么区别?

请看以下代码: -

if(myVariable==5)
   {
     //some logic
   }
Run Code Online (Sandbox Code Playgroud)

我的一个朋友说,这不是一个很好的方式来编写代码,因为它不是每条指导方针,但他没有任何理由.以上代码或意外修改是否有可能出现异常?据他说,更好的方式

if(5==myVariable)
       {
         //some logic
       }
Run Code Online (Sandbox Code Playgroud)

请让我知道哪个是更好的方式,为什么??? 如果您有任何链接,请提供链接.

Aln*_*tak 10

写的唯一理由:

5 == variable
Run Code Online (Sandbox Code Playgroud)

代替

variable == 5
Run Code Online (Sandbox Code Playgroud)

在前一种情况下,如果你错误地将一个赋值(单个=)放在适当的位置,你将得到编译时错误,因为你试图覆盖一个常量.

但是,如果你这样做,任何体面的编译器都会给你一个警告

if (variable = 5)
Run Code Online (Sandbox Code Playgroud)

所以恕我直言,这不值得担心.我总是使用后一种if (var == num)形式.


然而,在Java中常见的图案值得使用.在测试字符串是否相等时,应该使用:

if ("constant".equals(variable)) { ... }
Run Code Online (Sandbox Code Playgroud)

代替:

if (variable.equals("constant")) { ... }
Run Code Online (Sandbox Code Playgroud)

因为后者可以触发空指针异常,而前者不能.

  • +1表示"任何体面的编译器都会给你一个警告" (3认同)