2013-05-21 62 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语句。