2013-11-21 102 views
3

我使用的,如果没有在Java中的东西支撑条件像的Java一行if语句

if(somecondition) 
//Only one line Business logic 

但一些告诉总是使用大括号甚至一个行语句像这样

if(somecondition){ 
//Only one line Business logic 
} 

什么是更好的根据java标准的方式?

+2

取决于..后者是对我 – sanbhat

+0

它只是一个良好的编程习惯更易读。 – TheLostMind

+3

我知道很多人死了,因为他们没有使用大括号。所以记得总是使用大括号。 – Maroun

回答

16

没有真正的“标准”。我始终喜欢使用大括号,因为如果你不,你的风险有人添加一个无辜的看着logging语句把你的代码

if(somecondition) 
//Only one line Business logic 

if(somecondition) 
log.debug("condition was true"); 
//Only one line Business logic 

,然后事情停止工作:-)

+0

+1代码中断的例子。此外,像checkstyle这样的工具通常不允许裸if语句。 –

0

根据到java标准括号是更好的,因为如果他们不在那里编译器必须工作更多,也将是性能问题。

+0

性能问题?你的意思是编译需要额外的时间吗? –

+0

是的,因为如果没有大括号的话,编译器只能考虑语句中的一行 –

1

使用带括号的if语句是java标准的更好的方法,因为它增加了可读性并减少了不必要的错误。

1

这两个陈述有完全相同的效果,但我经常因缺乏大括号而遭受苦难,因此我总是会评论说,即使在1行陈述中也应该有大括号。这使得代码更容易维护,并且可以节省很多头痛的问题。我的经验表明,如果一行if语句经常在后面的迭代中变成多行语句,那么第一次不写两个{会节省什么,您将在稍后提供。

3

没有裸体if语句。你只是在问问题。始终使用{}

2

在检查错误或更新代码时最好使用大括号。

想象。

if(answer.equals("add")) 
    addedValue += Scanner.readInt(); 

但是你有一个新的要求,只添加绝对值,所以你改变。

if(answer.equals("add2)) 
    valueToBeAdded = Scanner.readInt(); 
    if(valueToBeAdded < 0) valueToBeAdded = - valueToBeAdded; 
    addedValue += valueToBeAdded; 

这不是一个真正正确的算法,只是一个可能发生的例子。

7

这是一个品味问题。我会使用大括号,否则不使用大括号,而是将所有代码写入一行以提高可读性。

你也可以考虑使用一个三元操作

booleanExpression ? value1 : value2 
4

除了@radai回答,如果你是一个真正邪恶的头脑,当你看到一个,如果没有括号,你可以做一些事情,这将使你通过在行(或某物)的第800列的同一行上添加一个分号来加入敌人。

if(condition) /*a loooot of whitespace*/ ; 
    //Only one line Business logic that will get executed whatever is the condition 

这就是为什么我更喜欢使用大括号,并建议人们使用它们

+1

我将确保这会使它在今天晚些时候生成 –

+0

:)你是邪恶的策划者! – benzonico

+0

这就是为什么我在我的IDE中显示空白。 – snowe