我最近与同事一起参与了一个涉及一行if语句的争论,并想看看stackoverflow的想法。
你觉得这个陈述应该写成:
if(condition)
{
statement = new assignment;
}
OR
if(condition)
statement=new assignment;
请提供您做出决定的充分理由。
答案 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案例
之外,我厌恶单行ifsoperation 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;
括号的使用可以防止错误:其他一些人可以添加以后新的句子,如果条件和忘记括号,则会被执行