2013-05-21 57 views
0

對不起,我是新來的stackoverflow,但我有一個問題,而編碼。我創建了這個簡單的 程序,但我注意到它在用if語句完成後仍然打印了else語句。該代碼是用C++編寫的,深表謝意。爲什麼else語句在if語句滿足後仍在打印?

# include <iostream> 
using namespace std; 

int main() 
{ 
    char check; 
    bool done = false; 
    while(not done) 
    { 
     cout<<"Please enter one of the options provided below."<<endl; 
     cout<<"D = distance S = second F = first"<<endl; 
     cin>>check; 
     if(check == 'D') 
     { 
      cout<<"You pressed D"<<endl; 
     } 
     if(check == 'S') 
     { 
      cout<<"You pressed S"<<endl; 
     } 
     if(check == 'F') 
     { 
      cout<<"You pressed F"<<endl; 
     } 
     else 
      cout<<"You suck!"; 
    } 
    return 0; 
} 

例如,當我按下d,我只想接收You pressed D作爲輸出。相反,我得到You pressed D You suck!

+3

它會一直告訴你,除非你按下F,否則你會吮吸。或者你期望別的東西嗎? :) – jrok

+0

這是因爲'else'屬於最後一個'if'。 – dasblinkenlight

+0

啊謝謝!我自動假設if語句是針對所有if語句的,而不僅僅是最後一個語句。 :D我花了很多時間試圖弄清楚這個網站在幾秒鐘內回覆它! – user2403581

回答

8

我敢肯定你想else if(即嵌套)而不是(後續)if S,但因爲你沒有提供的輸入或輸出,這只是一個猜測。

4

過於頻繁,我認爲剛剛發佈確切的代碼是教育的最佳方式,但在這種情況下,我覺得差將跳出你不:

if(check == 'D') 
    { 
     cout<<"You pressed D"<<endl; 
    } 
    else if(check == 'S') 
    { 
     cout<<"You pressed S"<<endl; 
    } 
    else if(check == 'F') 
    { 
     cout<<"You pressed F"<<endl; 
    } 
    else 
     cout<<"You suck!"; 

確保瞭解if之間的區別,else ifelse

此外,這是一個標準的情況,在其中使用switch語句。