如何在没有数字的情况下在c ++中创建while循环?

时间:2015-10-19 07:57:01

标签: c++

我正在尝试编写一个C ++程序:

  1. 问"问题?(a / b)"
  2. 从输入中读取字符变量
  3. 如果变量的值是a,则打印"您选择了一个!"
  4. 如果变量的值为b,则打印"您选择了b!"
  5. 在其他情况下,打印"您必须回答a或b",并在第一个问题时重新开始。
  6. 我写道:

        #include <iostream>
        using namespace std;
        main()
        {
           char c = A, a, b, B;
    
           cout << "Question?(a/b)" << endl;
           cin >> c;
    
           while ("You must answer a or b") {
               cin >> c;
           }
           if ( c = A || a )
               cout << "You chose a!" << endl;
           if ( c = B || b )
               cout << "You chose b!" << endl;
       }
    

    我知道那些带有&#34;如果&#34;是完全错的,但我不明白该怎么做......

2 个答案:

答案 0 :(得分:3)

字符串"You must answer a or b"的真值永远不会改变。您要检查的是c的值,并确保它是ab。您可以使用while(c != 'a' && c != 'b')

完成此操作

同样对于if语句,您使用的是不存在或未初始化的变量。 aBb未初始化,而A不存在。无论哪种方式,你都不需要它们。

此外,||运算符不能像那样工作。你需要每一方都有真值。因此,您应该执行if(c == 'a' || c == 'b')

之类的操作

答案 1 :(得分:1)

也许,这段代码可以帮到你:

#include <iostream>

using namespace std;



int main()
{
    char c;

    do {
        cout << "Choose 'a' or 'b' (to quit enter 'q'):" << endl;
        cin >> c;
        if ((c == 'a') || (c == 'b'))
        {
            cout << "You chose " << c << endl;
        }
    } while (c != 'q');

    return 0;
}