当前位置:  开发笔记 > 编程语言 > 正文

编写"if"语句的不同方式

如何解决《编写"if"语句的不同方式》经验,为你挑选了6个好方法。

我已经看到了编写if声明的不同方式.

您更喜欢哪一个?为什么?

例1:

if (val % 2 == 1){output = “Number is odd”;}else{output = “Number is even”;} 

例2:

if (val % 2 == 1)
{
    output = “Number is odd”;
}
else
{
   output = “Number is even”;
}

例3:

if (val % 2 == 1)
output = “Number is odd”;
else
output = “Number is even”;

例4:

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语句的代码.



1> Jon Skeet..:

对于这样的情况,还有条件运算符:

output = (val % 2 == 1) ? "Number is odd" : "Number is even";

如果你肯定会使用"if"我将使用版本2或版本4,这取决于你的支撑风格的其余部分.(在工作中我使用4;对于我使用的个人项目2.)主要的是,即使在单个语句周围也有括号.

顺便说一句,为了测试奇偶校验,它使用起来稍微快一些:

if ((val & 1) == 1)


@BlueRaja:毫无意义?它可以改善我的体验表现.它还可以更轻松地处理签名值.不是我给它***选项,而不是*only*选项.
条件运算符为+1,无名按位黑客为-1

2> Bryan Marble..:

版本2.我总是包含括号,因为如果您需要在条件下放置多行,则不必担心将括号放在以后的日期.这样,它确保所有if语句具有相同的结构,这有助于扫描某个if语句的代码.


和非支架可以隐藏错误

3> Khadaji..:

我使用的是版本2.

如果你没有其他的话,使用花括号的一个原因会变得更清楚.

if(SomeCondition)
{
  DoSomething();
}

如果您需要添加另一行代码,则不太可能出现问题:

if(SomeCondition)
{ 
  DoSomething();
  DoSomethingElse();
}

如果没有支撑,你可能会这样做:

if(SomeCondition)
   DoSomething();
   DoSomethingElse();


人们一直在使用这个作为总是使用大括号的理由,但这种情况曾经发生在你迷茫的地方吗?
是的,它曾经给我造成了一个错误.我不记得我是否是开发人员负责将"DoSomethingElse"调用错误的缩进,但我确实找到并修复了它.当代码真的"看起来"正确时,它需要比你想象的更长的时间.

4> Jacob Adams..:

我个人更喜欢3.额外的花括号只会增加太多不必要的视觉噪音和空白.

我可以在某种程度上看到2/4减少错误的原因,但我个人从来没有过错,因为在if语句中考虑额外的行.我使用C#和visual studio,因此我的代码始终保持格式良好.如果我是一个更记事本风格的程序员,这可能是一个问题.



5> RuudKok..:

我更喜欢#2.易读性.



6> belgarionthe..:

以上都不是.

如果我的执行单元只有一个行(即使它是一个巨大的声明),那么我不使用大括号,但我缩排,类似于#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在这个问题上的回答是最好的

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有