2009-09-17 59 views
6

我試圖辨別if,else和else之間有什麼區別?

if 
else 
else if 

何時使用它們,何時不區別?

我有一大堆實例的作業分配,並且由於不知道每個實例之間的差異而導致代碼錯誤。

有人可以定義如何使用這些?

+1

您可能還想查看如何使用「case」語句,因爲它是C中的另一個主要條件組件,並且與if/else if/else結構形成鮮明對比。 – 2009-09-17 16:35:19

+0

使用它們(它們危害了大多數編程語言中的基本分支結構) - 那麼您將看到它們的功能,它們的工作方式以及它們的用途。 – 2010-12-22 07:45:25

回答

20
**IF** you are confused 
read the c# spec 
**ELSE IF** you are kind of confused 
read some books 
**ELSE** 
everything should be OK. 

:)

+12

閱讀C#規範學習C可能會讓某人更加困惑... – 2015-10-03 01:53:37

+0

markdown,對不對? – 23ars 2016-11-25 13:14:45

53

一種if聲明如下這種結構的:

if (condition) 
{ 
    // executed only if "condition" is true 
} 
else if (other condition) 
{ 
    // executed only if "condition" was false and "other condition" is true 
} 
else 
{ 
    // executed only if both "condition" and "other condition" were false 
} 

if部是指絕對強制性的唯一塊。 else if允許你說「好吧,如果前面的條件不是真的,那麼如果這個條件是真的......」。其他人說「如果以上條件都不是真的......」

您可以有多個else if塊,但只有一個if塊和只有一個(或零)else塊。

+6

只需要明確OP:在通過一組if/else語句的過程中,將只執行一個語句塊。所以如果'condition'和'other condition'都是真的,那麼只有條件的代碼會被執行。 – fbrereto 2009-09-17 16:33:56

+0

@fbrerto:好的,謝謝! – 2009-09-17 16:37:07

+0

啊所以如果你在一個if裏有多個選擇,那麼你使用else if? – HollerTrain 2009-09-17 16:38:09

13

如果,否則,如果所有結構都有助於'分支'代碼。基本上,只要你想做決定就僱用他們。

一個例子是'如果陽光明媚,我會去外面。否則,我會留在裏面」

在代碼(忽略多餘的東西)

if (sunny) { 
    goOutside(); 
} 
else { 
    stayInside(); 
} 

你可以使用‘否則,如果’語句,如果你想添加‘額外’的條件。擴展前面的例子,「如果是晴天,我會去外面如果是暴風雨,我會去到地下室,否則我會留在裏面。」

在代碼

if (sunny) { 
    goOutside(); 
} 
else if (stormy) { 
    goDownstairs(); 
} 
else { 
    stayInside(); 
} 

EDIT部分:

以下是您可以如何撰寫多個ifs和條件。下面的例子至少可以寫成兩種方式:

'如果陽光明媚,溫暖的話,走出室外。如果天氣晴朗而寒冷,什麼也不做」

if (sunny) { 
    if (warm) { 
    goOutside(); 
    } 
    else if (cold) { 
    doNothing(); 
    } 
} 

OR

if (sunny && warm) { 
    goOutside(); 
} 
else if (sunny && cold) { 
    doNothing(); 
} 
+2

使用現實世界的概念,而不是像'condition'或'a','b'等佔位符+1。 – 2009-09-17 17:07:03

+0

+1爲真實世界的概念。您如何定義以下內容,因爲這是我遇到問題的地方: 如果陽光明媚的去外面。如果晴天去公園。如果陽光明媚的去商店。如果天氣晴朗,請去discoteck。 如果它暴風雨下樓。如果暴風雨進入客廳。如果暴風雨進入客廳。如果它暴風雨進入你的臥室。 – HollerTrain 2009-09-17 17:19:38

+0

如果主內部有多個if如果我在哪裏遇到問題 – HollerTrain 2009-09-17 17:20:52

1

else if可以配合使用‘如果’和‘其他’,進一步打破邏輯

//if less than zero 
if(myInt < 0){ 
     //do something 
}else if(myInt > 0 && myInt < 10){ 
//else if between 0 and 10  
     //do something 
}else{ 
//else all others 
     //do something 
} 
1

if語句的語法是

if(condition) 
    something; // executed, when condition is true 
else 
    otherthing; // otherwise this part is executed 

所以,基本上,elseif構建體的一部分(東西otherthing通常封閉在{}複合語句和else的部分是,在實際上,可選)。並且else if是兩個if的組合,其中其他本身是if

if(condition1) 
    something; 
else if(condition2) 
    otherthing; 
else 
    totallydifferenthing; 
28

If-elseif-else可以寫成嵌套的if-else。這些是(從邏輯上說)當量:

if (A) 
{ 
    doA(); 
} 
else if (B) 
{ 
    doB(); 
} 
else if (C) 
{ 
    doC(); 
} 
else 
{ 
    doX(); 
} 

相同:

if (A) 
{ 
    doA(); 
} 
else 
{ 
    if (B) 
    { 
     doB(); 
    } 
    else 
    { 
     if (C) 
     { 
      doC(); 
     } 
     else 
     { 
      doX(); 
     } 
    } 
} 

其結果是,最終只有一個doAdoBdoC,或doX進行評價。

+7

我很高興有人指出'其他if'不是關鍵字,並else'的'只是一個格式化的組合和'if' – GManNickG 2009-09-17 16:42:55

+1

同意GMAN,這不是Python的, Perl,VB等。這裏只有如果還有這裏。 – Pod 2009-09-17 16:50:23

9

沒有「else if」。您有以下:

if (condition) 
    statement or block 

或者:

if (condition) 
    statement or block 
else 
    statement or block 

在第一種情況下,如果條件爲真(不是0)執行語句或塊。在第二種情況下,如果條件爲真,則執行第一個語句或塊,否則執行第二個語句或塊。

因此,當您編寫「else if」時,這是一個「else statement」,其中第二個語句是if語句。如果你嘗試這樣做可能會出現問題:

if (condition) 
    if (condition) 
     statement or block 
else 
    statement or block 

這裏的問題是你想要的「else」是指第一個「if」,但是你實際上指的是第二個。你這樣做解決這個問題:

if (condition) 
{ 
    if (condition) 
     statement or block 
} else 
    statement or block 
+3

正是這個問題,被稱爲「晃來晃去ELSE」的問題,首先在PASCAL(或可能ALGOL)看到,早在開發C,導致吉恩·奇比亞和他的團隊採用的控制結構的完全括號風格阿達。 – 2009-09-17 17:01:54

+1

+1因爲沒有「else if」語句。有一個'if'語句包含一個語句,當[真]和[可選]語句假時。開發者可以利用虛假的語句來檢查新的條件,並且由於這是一個無處不在的情況,因此它被稱爲「else if」。 – 2009-09-17 17:22:52

1

這些都是你在大多數的編程語言有基本的決定,命令;它可以幫助你決定你的程序要做的動作的流程。 的如果告訴你有一個問題,編譯器,問題是

if (condition) { 
    thingsToDo().. 
} 

其他部分括號之間疾病是一種除了這種結構告訴編譯器什麼,如果做條件是假

if (condition) { 
    thingsToDo().. 
} else { 
    thingsToDoInOtherCase().. 
} 

可以結合使用這些形成否則,如果這是當第一個條件是假的,但你想要做什麼決定之前,另一個問題這樣做。

if (condition) { 
    thingsToDo().. 
} else if (condition2) { 
    thingsToDoInTheSecondCase().. 
}else { 
    thingsToDoInOtherCase().. 
} 
+0

在最後一個前你是否錯過了一個}關閉其他如果? – HollerTrain 2009-09-17 18:29:29

2
if (numOptions == 1) 
    return "if"; 
else if (numOptions > 2) 
    return "else if"; 
else 
    return "else"; 
+2

我覺得你的意思'numOptions == 1' – 2009-09-17 16:52:56

+0

我很尷尬...... – AShelly 2009-09-21 04:54:07

1

if語句使用邏輯表達式的結果,以決定是否兩個碼塊中的一個將被執行。

有了這個代碼

if (logical expression) { 
    code block 1; 
} else { 
    code block 2; 
} 

如果邏輯表達式爲真,僅在碼塊1中的語句將被執行;如果爲false,則只顯示代碼塊2中的語句。

如果存在多個類似的測試(例如,如果我們測試的數字小於零,等於零或大於零)那麼第二個測試可以作爲else代碼塊的第一條語句。

if (logical expression 1) { 
    code block 1; 
} else { 
    if (logical expression 2) { 
     code block 2; 
    } else { 
     code block 3; 
    } 
} 

在這種情況下,如果邏輯表達式1爲真,則執行代碼塊1;代碼塊2,如果邏輯表達式1爲假並且邏輯表達式2爲真;代碼塊3,如果兩個邏輯表達式都是假的。

顯然,這可以用另一個if語句被重複的代碼塊的第一個語句3.

的else if語句簡單,就是代碼的重排版本。

if (logical expression 1) { 
    code block 1; 
} else if (logical expression 2) { 
    code block 2; 
} else { 
    code block 3; 
} 
2

他們說的是什麼,他們的英文意思。

IF條件爲真,做一些事情,ELSE(否則)如果其他條件爲真,做一些事情,ELSE做到這一點,當一切都失敗了。

注意,沒有別人那裏,如果結構特別,只是如果其他,但語法允許別的地方,如果在一起,當你這樣做的慣例是不嵌套它們更深。例如:

if(x) 
{ 
    ... 
} 
else if(y) 
{ 
    ... 
} 
else 
{ 
    ... 
} 

在語法上是相同的:

if(x) 
{ 
    ... 
} 
else 
{ 
    if(y) 
    { 
     ... 
    } 
    else 
    { 
     ... 
    } 
} 

在這兩種情況下的語法是:

if *<statment|statment-block>* else *<statment|statment-block>* 

如果本身就是一個statment,使語法單獨支持使用否則如果

5

死的簡單的僞代碼說明:

/* If Example */ 
if(condition_is_true){ 
    do_this 
} 
now_do_this_regardless_of_whether_condition_was_true_or_false 

/* If-Else Example */ 
if(condition_is_true){ 
    do_this 
}else{ 
    do_this_if_condition_was_false 
} 
now_do_this_regardless_of_whether_condition_was_true_or_false 

/* If-ElseIf-Else Example */ 
if(condition_is_true){ 
    do_this 
}else if(different_condition_is_true){ 
    do_this_only_if_first_condition_was_false_and_different_condition_was_true 
}else{ 
    do_this_only_if_neither_condition_was_true 
} 
now_do_this_regardless_of_whether_condition_was_true_or_false 
+0

如果你有 else if(different_condition_is_true){ do_this_only_if_first_condition_was_false_and_different_condition_was_true } 內附加條件我需要讓? – HollerTrain 2009-09-17 17:39:43

+0

do_this_only_if_first_condition_was_false_and_different_condition_was_true可以用任何你想要的更換,如果更換爲嵌套的if(條件){} do_this將相應的行爲。 – JStriedl 2009-09-17 18:55:57

3

,我認爲它有助於認爲並非如此的「其他人」的字。

所以你會喜歡這個閱讀:

if (something is true) 
{ 
    // do stuff 
} 
otherwise if (some other thing is true) 
{ 
    // do some stuff 
} 
otherwise 
{ 
    // do some other stuff :) 
} 
3
if (condition) 
{ 
    thingsToDo().. 
} 
else if (condition2) 
{ 
    thingsToDoInTheSecondCase().. 
} 
else 
{ 
    thingsToDoInOtherCase().. 
} 
0

如果和其他人如果兩者都用於測試的條件。

我把if和else ..

的情況下,在如果編譯器的情況下檢查所有的情況下閹它是真的還是假的。 如果沒有一個塊執行,那麼其他部分將被執行。

在else的情況下,如果編譯器在得到false值時停止程序流程。它不會讀取整個程序。因此,如果我們使用其他更好的性能。

但兩者根據情況

我採取例如福爾排序菜單 的,如果我使用別的,如果那麼它將滿足以及 因爲用戶只能檢查一個也有其重要性。 ,它會給錯誤 所以我用,如果在這裏..

StringBuilder result=new StringBuilder(); 
      result.append("Selected Items:"); 
      if(pizza.isChecked()){ 
       result.append("\nPizza 100Rs"); 
       totalamount+=100; 
      } 
      if(coffe.isChecked()){ 
       result.append("\nCoffe 50Rs"); 
       totalamount+=50; 
      } 
      if(burger.isChecked()){ 
       result.append("\nBurger 120Rs"); 
       totalamount+=120; 
      } 
      result.append("\nTotal: "+totalamount+"Rs"); 
      //Displaying the message on the toast 
      Toast.makeText(getApplicationContext(), result.toString(), Toast.LENGTH_LONG).show(); 
     } 

now else if case 

if (time < 12) { 
    greeting = "Good morning"; 
} else if (time < 22) { 
    greeting = "Good day"; 
} else { 
    greeting = "Good evening"; 
} 

這裏只滿足一個條件.. 並在多個條件可以得到滿足的情況下...

0

你能想到的作爲一對的ifelse,其滿足two actionsone given condition
ex:if下雨,拿傘傘else沒有雨傘。
有兩個動作

  • 去用雨傘
  • 去無傘

和兩個兩個動作被綁定到一個條件,i.eis it raining?

現在,考慮場景中有多個條件和行爲綁定在一起。
例如:if你餓了and你沒有打破,在肯德基享用餐點,else if你餓了but你一文不名,儘量妥協,else if你是不是餓了,但你只是想在咖啡館聚會,可以試試startbucks,else做任何事情,只是不要問我飢餓或食物。我有更大的事情要擔心。
else if聲明將所有落入ifelse條件之間的操作串聯在一起。

0

if說什麼:

無論我是真還是假,經常檢查其他條件了。

else if說什麼:如果

只有檢查其他條件,我是不正確的。