2011-06-18 59 views
0

我不太確定while(選擇== 1 ||選擇== 2); 任何人都可以解釋。我明白了這一點C++「while」說明

if(choice ==1) 
    displayMonthly(rainfall); 
else if(choice == 2) 
    displayTotal(rainfall); 

我只是不明白此後的代碼。任何人都可以向我解釋一下。

int main() 
{ 
    //declare variable and array 
    int choice = 0; 
    double rainfall[12] = {0.0}; 

    //get rainfall amounts 
    for(int x =0;x<12;x++) 
    { 
     cout << "Enter rainfall for month "<< x+1<< ": "; 
     cin >> rainfall[x]; 
    } 

    do 
    { 
     //display menu and get menu choice 
     cout <<endl; 
     cout << "1 Display monthly amounts" << endl; 
     cout << "2 Display total amount" << endl; 
     cout << "3 End program" << endl; 
     cout << "Enter your choice : "; 
     cin >> choice; 

     //call appropriate function or end program 
     if(choice ==1) 
      displayMonthly(rainfall); 
     else if(choice == 2) 
      displayTotal(rainfall); 
    }while (choice == 1 || choice ==2); 

    return 0; 
} 
+0

這是下一次迭代或不循環基於'choice'值的條件。 – Mahesh

回答

1

這是一個do ... while循環。這個想法是,只要條件(choice == 1 || choice ==2)爲真,塊內的代碼就會繼續執行。

這裏是從cplusplus.com article on Control Structures更多信息:

做陳述時(條件);

其功能與while循環完全相同,只是do-while循環中的條件是在語句執行之後而不是之前執行的,即使條件從未滿足,也至少允許執行一次語句執行。例如,以下示例程序會回顯您輸入的任何數字,直到您輸入0爲止。

do-while循環通常用於在循環語句本身內確定必須確定循環結束的條件,例如在之前的情況下,塊內的用戶輸入是用於確定循環是否結束的地方。事實上,如果您在前面的示例中從未輸入值0,則可能會提示您輸入更多數字。

你也可以這麼想。如果您始終希望代碼塊中的代碼至少執行一次,則可以使用do-while結構。在你的程序中就是這樣,因爲你總是想顯示提示,並且只能決定在你接收和處理用戶的輸入後循環是否會繼續。

+0

儘管技術上正確,但並不能解釋它背後的動機。 –

+0

同意;我剛剛更新了我的問題,提供了更多關於爲什麼會使用它的背景。 –

+0

這意味着,而不是選擇1或選擇2,如果插入任何其他選擇,它會執行此代碼(選擇== 1 ||選擇== 2)對不對? –

3

它告訴你要保持循環,只要選擇是1或2,但它完全獨立於if語句。

也可以被編碼爲

while(true) { 
    cout stuff... 

    if(choice==1) 
     ... 
    else if(choice==2) 
     ... 
    else 
     break; 
} 

這可能有點更具可讀性,但一些老的高中生會發瘋,如果他們看到,而(真)右出 - 所用的是灌輸了人作爲一個大紅色標誌指示潛在的錯誤(顯然,由於功能沒有不同,任何人都完全無法分析代碼)。

0

在這個應用程序,如果用戶點擊1或2,這意味着他們希望看到每月或總降雨量。這意味着他們沒有要求'結束程序'。該代碼假定如果用戶選擇了1或2,他們應該繼續使用該應用程序。如果他們選擇了其他任何東西(例如3,就像菜單所示),那麼條件choice == 1 || choice == 2將評估爲false,並使用terminate終止循環,導致應用程序關閉。

0

基本上,這裏的do ... while環的作用是保持,只要選擇的是1或2

「作」,用戶被提示後輸入自己的選擇重複自身,1 2或3。如果他們選擇1或2,則會調用其各自的功能。然後循環重複。如果他們選擇3,循環不會重複,程序結束。

希望這有助於!