可能重复:
如何检查等于?(0 == i)或(i == 0)
为什么人们经常在C#中看到"null!= variable"而不是"variable!= null"?
为什么一些有经验的程序员会这样写表达式?
在C++中NULL!= value是什么意思?
例如,
int k =5;
if( 5 == k )
{
}
Run Code Online (Sandbox Code Playgroud)
比...更受欢迎
if (k == 5)
{
}
Run Code Online (Sandbox Code Playgroud)
是仅考虑格式化目的还是有任何原因?
Jon*_*Jon 14
因为这种形式使得通过忘记其中一个等号来引入错误变得更加困难.想象一下,如果你这样做:
if (k = 5)
Run Code Online (Sandbox Code Playgroud)
这是作为比较,但它现在是一个任务!更糟糕的是,它是合法的,它会以多种方式搞乱你的程序(值的k变化,条件总是评估true).
与此形成鲜明对比
if (5 = k)
Run Code Online (Sandbox Code Playgroud)
这是不合法的(您不能分配给文字),因此编译器会立即将其标记为错误.
也就是说,这种编写代码的方式(条件中的赋值)在今天并不像以前那样流行.大多数现代编译器会将此标记为警告,因此不太可能未被发现.我个人不喜欢第二种形式,因为编译器是帮助我不使用它.
如果你输错了
if (k = 5) // instead of ==
Run Code Online (Sandbox Code Playgroud)
然后你可能刚刚介绍了一个很难找到的bug.(实际上,以前很难找到.现在,大多数编译器会将此标记为警告.)
但是,这将导致编译时错误
if (5 = k)
Run Code Online (Sandbox Code Playgroud)
顺便说一句,这种风格叫做尤达条件:-)
| 归档时间: |
|
| 查看次数: |
3606 次 |
| 最近记录: |