2013-11-21 194 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