1

可能重复:
i==0 和 0==i 之间有区别吗?

以下编码风格有什么好处,它们之间有什么区别吗?

int i;

// more code



if (i == 0) {...}

对比

if (0 == i) {...}

谢谢

4

3 回答 3

3

完全没有区别。

我一直觉得后一个例子的可读性较差,而且我很少看到它,但有些人似乎喜欢它。

于 2012-05-22T00:29:04.517 回答
2

没有区别,选择一个并坚持下去以保持一致性。这(value == variable)是旧语言的遗物,您可能会不小心将值分配给 if 中的变量(a = 0),而不是(a == 0)

它们都将变成(有效地)相同的机器指令,因此根本不会有任何性能差异

于 2012-05-22T00:28:57.917 回答
2

效率上没有区别,但是为了可读性,这种风格是首选:

if (i == 0) {...}

另一个版本是Yoda conditionif (0 == i) {...}的一个例子,它被认为是一种糟糕的编程习惯。引用链接:

“尤达条件”——使用 if (constant == variable) 而不是 if (variable == constant),例如 if (4 == foo)。因为这就像说“如果天空是蓝色的”或“如果男人是高的”。

在此处输入图像描述

于 2012-05-22T00:31:30.817 回答