什麼是寫作之間的區別:嵌套if和&&之間有什麼區別?
if(condition1 && condition2){
//some code
}
和:
if(condition1){
if(condition2){
//some code
}
}
如果有的話,哪一個更好?
什麼是寫作之間的區別:嵌套if和&&之間有什麼區別?
if(condition1 && condition2){
//some code
}
和:
if(condition1){
if(condition2){
//some code
}
}
如果有的話,哪一個更好?
差異主要在於可讀性和維護性。
2個邏輯條件的連接通常意味着它們之間存在語義關係。
要考慮的另一件事是範圍界定。嵌套0爲您提供了這方面的更多靈活性。
對於範圍點的+1。 –
他們也是這樣做,並以相同的順序進行評估。
Syntaxically不同和語義相同。
每種方式之間沒有功能差異。編譯器很可能會將它們優化到相同的機器代碼(儘管不能保證)。
實際上,沒有區別; //some code
只會在condition1
和condition2
評估爲非零時執行(true
)。
這會對else
&嵌套else if
條件產生影響,但除了可讀性以外沒有其他差別。
在第一種情況下,無論執行哪個代碼塊都會執行任何情況下評估爲真。 在第二個If語句中,可能會出現第一個條件等同於true的情況,但第二個條件不成立。並有可能爲開發者需要:
- 執行some code
如果條件滿足,
- 然後more code
其中第二條件滿足
- 無碼如果只有第二個條件得到滿足,而不是第一(例如:條件1 =球是不是死了,條件2 =球進入淨[其中more code
會在足球比賽中註冊一個目標])
代碼:
if(condition1){
//some code
if(condition2){
//more code
}
}
哪個更好?
這取決於你正在使用它的
第一個,if(condition 1 && condition 2)
什麼,只能包含一個單一的其他部分,提供你的代碼中的假設工作,這兩個條件是正確的,或者兩者都是錯誤的。在另一部分中,你可以有兩個部分,每個部分用於每個條件的失敗,從而增加了問題的範圍。
在1-liner中,else部分並不意味着「所有條件都是錯誤的」,而是「至少有一個條件是錯誤的」。 –
其他人已經說過需要說什麼。它們基本相同。第一個是在一個班輪中進行狀態檢查。其次可以用於更詳細的檢查。第二個可以在調試時證明是好的。例如。只需在假情況下添加調試操作即可。以下是一個有趣的小例子,我能想到的
if("shell we meet today?" && "would you like some coffee?")
{
//Check both at the same time.
/*
*Sequential order of evaluation for && ensures that
*left hand side operand (condition) gets evaluated first
*/
//take some chocolates with the coffee
}
if("shell we meet today?")
{
//then
//if you want to figure out the options first
if("would you like some coffee?")
{
//take some chocolates with the coffee
}
else if("how about lunch?")
{
//Pizza?
}
else
{
//some fall back scenario?
}
}
那麼首先2線對4線+ 1塊對2塊...:秒,但第二個是diferent實際情況,而在第選項,你將必須擁有所有的真實,分離如果會給你自由處理它,只要你喜歡。 –
+1,這個問題。 –