C++ 输出错误命令的条件语句

C++ 输出错误命令的条件语句,c++,arrays,loops,conditional-statements,C++,Arrays,Loops,Conditional Statements,这里是初学者,如果我犯了错误,我很抱歉 我将di分配为数组myworld[],这取决于用户输入,它将把di分配到适当的数组位置,但由于某些原因,当我的输入为“c”时,if语句将继续输出make而不是change 我试图删除else if并将其全部放入if,或者去掉else if并仅使用else #include <iostream> using namespace std; int main() { char di; char myword[] = {'d','m','s' ,

这里是初学者,如果我犯了错误,我很抱歉 我将di分配为数组myworld[],这取决于用户输入,它将把di分配到适当的数组位置,但由于某些原因,当我的输入为“c”时,if语句将继续输出make而不是change

我试图删除else if并将其全部放入if,或者去掉else if并仅使用else

#include <iostream>
using namespace std; 

int main() {

char di;
char myword[] = {'d','m','s' ,'c'};
do {
    cout << "Make a selection:" << endl;
    cout << "d - insert 1$ bill" << endl; 
    cout << "m - view menu" << endl; 
    cout << "s - select an item" << endl; 
    cout << "c - get change" << endl; 
    cin >> di;
    if (di == 'd')
        di = myword[0];
    else if (di == 'c')
        di = myword[3]; 
}while (!myword);

if (myword[0])
    cout << "make";
else if (myword[3])
    cout << "change";
return 0;
}

可能您忘记了在if语句中进行比较。现在,你只是在说“如果”!=0,这总是正确的。也许您试图使ifdi==myword[0]。这同样适用于else if语句。

提示:myword[0]的计算结果是什么?将我的话是真的吗?这里可能需要一个switch语句。首先,更正缩进,因为它看起来有点混乱。你想通过边做边做的循环实现什么。您需要多个输入吗?如果是这样,您需要一个类型来实际保存这些值。您可以查看C++容器类型,如vector。例如。std::vec;向量推回di;然后检查存储在Vec中的所有输入,请参见。