use*_*700 1 c++ loops while-loop conditional-statements
这是意味着什么:在提示用户之后,"你想输入另一个名字吗?" 如果用户输入"Y",则应提示他们添加其他名称.相反,程序运行在cin << response之后开始的循环,我认为我将条件设置为仅在用户未输入'Y','y,'N,'或'n'时运行.实际上,无论用户如何回答该问题,该程序似乎都与我想要的相反.
#include <iostream>
#include <cstring>
using namespace std;
int main(){
const int MAX_NUM = 101;
char name[MAX_NUM];
char response;
char nameCorrect = 'n';
double total = 0;
do{
do{
cout << "Please enter name: ";
cin >> name;
cin.ignore(100, '\n');
cout << "It looks like you entered " << name
<< ". Is this correct? (Y/N) " << endl;
cin >> nameCorrect;
while (nameCorrect != 'y' & nameCorrect != 'Y' & nameCorrect != 'n' & nameCorrect != 'N')
{
cin.clear();
cin.ignore(200, '\n');
cout << '\n' << "If " << name <<
" is what you are trying to enter, "
<< "please enter Y." << '\n'
<< "If " << name << " is not correct, plese enter N."
<< '\n' << "(Y/N): ";
cin >> nameCorrect;
}
} while (nameCorrect == 'n' || nameCorrect == 'N');
cout << "Would you like to enter another name? (Y/N) ";
cin >> response;
if (response != 'y' & response != 'Y' & response != 'n' & response != 'N');
{
cin.clear();
cin.ignore(200, '\n');
cout << '\n' << "If you would like to enter another name Y."
<< '\n' << "If you are finished, please enter N. " << '\n' << "(Y/N): ";
cin >> response;
}
} while (response == 'y' || response == 'Y');
return 0;
}
Run Code Online (Sandbox Code Playgroud)
对于此代码:
if (response != 'y' & response != 'Y' & response != 'n' & response != 'N');
Run Code Online (Sandbox Code Playgroud)
删除;最后
这;是if有条件执行的,下面的块将始终运行.