为什么这个节目只招惹2?无论我输入什么

时间:2018-01-06 19:25:52

标签: c++

我被要求制作一个程序,读取字母代码A到Z并打印相应的电话号码。 该程序使用哨兵控制的while循环。要停止程序,系统会提示用户输入 哨兵,#。例如MIU = 648(就像旧的诺基亚手机一样) 其中2 =(A,B,C)

这是我的代码,但问题是它只有cout的“2”..任何想法为什么会这样?

int main() {

        char x;
        cin >> x;   

        while (x != '#') {

            if (x == 'A', 'B', 'C')
                cout << 2;
            else if (x == 'G', 'H', 'I')
                cout << "4";
            else if (x == 'M', 'N', 'O')
                cout << 6;
            else if (x == 'T', 'U', 'V')
                cout << 8;
            else if (x == 'D', 'E', 'F')
                cout << 3;
            else if (x == 'J', 'K', 'L')
                cout << 5;
            else if (x == 'P', 'Q', 'R', 'S')
                cout << 7;
            else if (x == 'W', 'X', 'Y', 'Z')
                cout << 9;
                cin >> x;
            }
        }

2 个答案:

答案 0 :(得分:2)

您无法在C ++中使用res.send(pug.renderFile("./pugs/register.pug",{})) 运算符。

,

此代码的评估方式如下: if (x == 'A', 'B', 'C') cout << 2; 为真/假,然后扔掉结果。 然后它会评估x == 'A'然后抛弃它。 然后它将评估B,并将给予if。

你需要做

C

如何在if语句中有时使用if (x == 'A' || x == 'B' || x == 'C') cout << 2; 就像这样。

,

答案 1 :(得分:0)

在这里,您使用 OR运算符而不是逗号&#39; 。我正在修改您的代码&amp;附上了该程序的截图。 请尝试以下代码。

#include<stdio.h>
#include<iostream>
using namespace std;
int main() {

    char x;
    cin >> x;

    while (x != '#') {

        if (x == 'A' || x == 'B' || x == 'C')
            cout << 2;
        else if (x == 'G' || x == 'H' || x == 'I')
            cout << "4";
        else if (x == 'M' || x == 'N' || x == 'O')
            cout << 6;
        else if (x == 'T' || x == 'U' || x == 'V')
            cout << 8;
        else if (x == 'D' || x == 'E' || x == 'F')
            cout << 3;
        else if (x == 'J' || x == 'K' || x == 'L')
            cout << 5;
        else if (x == 'P' || x == 'Q' || x == 'R' || x == 'S')
            cout << 7;
        else if (x == 'W' || x == 'X' || x == 'Y' || x == 'Z')
            cout << 9;
        cin >> x;
    }
    return 0;
} 

Output of the code

相关问题