我已经看到了编写if
声明的不同方式.
您更喜欢哪一个?为什么?
if (val % 2 == 1){output = “Number is odd”;}else{output = “Number is even”;}
if (val % 2 == 1) { output = “Number is odd”; } else { output = “Number is even”; }
if (val % 2 == 1) output = “Number is odd”; else output = “Number is even”;
if (val % 2 == 1){ output = “Number is odd”; } else { output = “Number is even”; }
为什么省略花括号被认为是一种不好的做法?
Jon Skeet.. 49
对于这样的情况,还有条件运算符:
output = (val % 2 == 1) ? "Number is odd" : "Number is even";
如果你肯定会使用"if"我将使用版本2或版本4,这取决于你的支撑风格的其余部分.(在工作中我使用4;对于我使用的个人项目2.)主要的是,即使在单个语句周围也有括号.
顺便说一句,为了测试奇偶校验,它使用起来稍微快一些:
if ((val & 1) == 1)
@BlueRaja:毫无意义?它可以改善我的体验表现.它还可以更轻松地处理签名值.不是我给它***选项,而不是*only*选项. (6认同)
条件运算符为+1,无名按位黑客为-1 (2认同)
Bryan Marble.. 17
版本2.我总是包含括号,因为如果您需要在条件下放置多行,则不必担心将括号放在以后的日期.这样,它确保所有if语句具有相同的结构,这有助于扫描某个if语句的代码.
对于这样的情况,还有条件运算符:
output = (val % 2 == 1) ? "Number is odd" : "Number is even";
如果你肯定会使用"if"我将使用版本2或版本4,这取决于你的支撑风格的其余部分.(在工作中我使用4;对于我使用的个人项目2.)主要的是,即使在单个语句周围也有括号.
顺便说一句,为了测试奇偶校验,它使用起来稍微快一些:
if ((val & 1) == 1)
版本2.我总是包含括号,因为如果您需要在条件下放置多行,则不必担心将括号放在以后的日期.这样,它确保所有if语句具有相同的结构,这有助于扫描某个if语句的代码.
我使用的是版本2.
如果你没有其他的话,使用花括号的一个原因会变得更清楚.
if(SomeCondition) { DoSomething(); }
如果您需要添加另一行代码,则不太可能出现问题:
if(SomeCondition) { DoSomething(); DoSomethingElse(); }
如果没有支撑,你可能会这样做:
if(SomeCondition) DoSomething(); DoSomethingElse();
我个人更喜欢3.额外的花括号只会增加太多不必要的视觉噪音和空白.
我可以在某种程度上看到2/4减少错误的原因,但我个人从来没有过错,因为在if语句中考虑额外的行.我使用C#和visual studio,因此我的代码始终保持格式良好.如果我是一个更记事本风格的程序员,这可能是一个问题.
我更喜欢#2.易读性.
以上都不是.
如果我的执行单元只有一个行(即使它是一个巨大的声明),那么我不使用大括号,但我做缩排,类似于#3
if (num > 3) print "num is greater than 3"; else print "num is not greater than 3";
多个语句不需要花括号的示例:
if (num > 3) for (int i = 0; i < 100) print i + "\n"; else print "booya!";
也就是说,Jon Skeet在这个问题上的回答是最好的