一行if语句

时间:2009-09-16 18:40:58

标签: if-statement

我最近与同事一起参与了一个涉及一行if语句的争论,并想看看stackoverflow的想法。

你觉得这个陈述应该写成:

if(condition)
{
     statement = new assignment;
}

OR

if(condition)
    statement=new assignment;

请提供您做出决定的充分理由。

11 个答案:

答案 0 :(得分:20)

如果你真的应该使用一行

 if(condition) statement=new assignment;

因为它的一行会更好,它应该包含一个操作。

答案 1 :(得分:15)

我总是使用封闭的大括号来降低某人(包括我自己)以后通过编辑if语句周围的代码引入错误的风险,而不必仔细注意哪些行属于if条件。

编辑:

这是一个实际的例子,如果碰巧遇到一些旧代码:

if (form.validateUpload (messages, this))
    return getErrorOutcome (ctx, messages);
    if (LOG.isInfoEnabled ())
        LOG.info ("CREATING UPLOAD");

注意两个“if”语句是如何在主代码块中但由于格式不佳,乍一看它们似乎是嵌套的。当然,任何“好”的程序员都应该很快看到发生了什么,但为什么会造成任何不必要的混淆?

答案 2 :(得分:5)

我一直是大括号的粉丝。如果有人要像这样修改oneline if语句:

if(condition) statement=new assignment;

if(condition)
statement = new assignment;
another statement;

你不会得到预期的行为。

使用大括号几乎可以确保如果有人修改了if语句,他们会确保将正确的语句放在正确的位置。

答案 3 :(得分:4)

这实际上取决于您的小组的编码风格。该小组应具有一致的编码标准。对于我目前的小组,我们总是使用:

if (condition) {
  statement = new assignment;
}

我们这样做是为了防止在if语句之后忘记括号引起的错误,例如:

if (condition)
   statement1;
   statement2; 
//statement2 is not part of the if statement, but it looks like it because of wrong indentation

我最近一直工作的另一个小组总是将这种语法用于单行if语句:

if (condition)
    statement1;

我个人不喜欢这个,因为它不太明确;但最重要的是坚持为您的团队或项目制定一致的编码标准,以便您编写的代码看起来像您的同事编写的代码,并且对于组中的每个人来说都很容易阅读。

您的IDE或环境的惯例可以为您的编码标准提供良好的基础,甚至可以根据您的团队风格进行定制。

答案 4 :(得分:1)

if (condition)
{
    statement = new assignment;
}

是我要写的。也就是因为我喜欢整洁的代码,这样可以节省阅读/编辑/理解的时间。

在极少数情况下,只有当我快速编写用于调试的内容等时,才会出现异常。

一行if语句总是很容易被分号的放置所破坏。

答案 5 :(得分:0)

我总是做一行if语句sans-bracket。括号的存在表明(在语法上正确)“哦,我可以在这里做点什么......”我不喜欢这种诱惑。任何涉及多个陈述的内容都应该用适当的括号分成多行。

答案 6 :(得分:0)

我会没有括号。

你需要括号的唯一原因是你在块内有多个语句。

虽然听起来像是在浪费争论。

答案 7 :(得分:0)

if(condition)
    statement=new assignment;

if(condition) statement=new assignment;

答案 8 :(得分:0)

作为一项规则,除了Perl案例

之外,我厌恶单行ifs
operation if condition;

答案 9 :(得分:0)

我有自动格式设置来杀死你的单行,这将它放在两行。因此,它需要大括号。

答案 10 :(得分:0)

我总是使用括号括号,我从不编码一行ifs,我的方法看起来像这样

if(condition) { 
    statement = new assignment; 
}

因为我编写了Java代码,这就是语言的惯例。检查:

http://java.sun.com/docs/codeconv/html/CodeConventions.doc6.html#449

  

注意:if语句总是使用大括号   {}。避免以下容易出错   形式:

if (condition) //AVOID! THIS OMITS THE BRACES {}!
    statement;

括号的使用可以防止错误:其他一些人可以添加以后新的句子,如果条件和忘记括号,则会被执行