0

抱歉,我是 stackoverflow 的新手,但我在编码时遇到了问题。我创建了这个简单的程序,但我注意到它在使用 if 语句完成后仍然打印 else 语句。代码是用 c++ 编写的,非常感谢您的帮助。

# 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!

4

2 回答 2

8

我很确定您想要else if(即嵌套)而不是(后续)ifs,但这只是一个猜测,因为您没有提供输入或输出。

于 2013-05-21T00:15:00.230 回答
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 if和之间的区别else

这也是使用switch语句代替的标准情况。

于 2013-05-21T00:26:36.787 回答