C++ 卡在while循环中的if语句中
有人能在这个循环中发现我的错误吗?在我读了回复后,我似乎陷入了If语句中。此外,在条件为true的情况下放入break in退出循环似乎会抛出一个错误:“Expected primary expression before” 代码:C++ 卡在while循环中的if语句中,c++,loops,C++,Loops,有人能在这个循环中发现我的错误吗?在我读了回复后,我似乎陷入了If语句中。此外,在条件为true的情况下放入break in退出循环似乎会抛出一个错误:“Expected primary expression before” 代码: while (rowNum > (FC_Row)) { cout << "That row is not located in our first class section. Would you like to change y
while (rowNum > (FC_Row))
{
cout << "That row is not located in our first class section. Would you like to change your class so you can sit in that row (Y/N)?" << endl;
cin >> reply;
reply = toupper(reply);
while (reply != 'Y' && reply !='N')
{
cin.clear();
while(cin.get()!='\n');
cout << "Please indicate your answer with Y (yes) or N (no)." << endl;
cout << "try again:" << endl;
cin >> reply;
reply = toupper(reply);
}
if (reply = 'Y')
ticketType = 'E';
break; // I want this to exit the while loop, I get a syntax error from this break.
else
cout << "Then choose a row numbered 1-" << (FC_Row) << endl;
cin >> rowNum;
}
while(rowNum>(FC_行))
{
答不上来;
回复=toupper(回复);
while(回复!='Y'&&reply!='N')
{
cin.clear();
而(cin.get()!='\n');
你可能缺少{}
,你在想用的地方使用=
if (reply == 'Y') {
ticketType = 'E';
break;
} else {
cout << "Then choose a row numbered 1-" << (FC_Row) << endl;
cin >> rowNum;
}
if(回复=='Y'){
ticketType='E';
打破
}否则{
cout您需要大括号,并在条件下用=
替换=
:
if (reply == 'Y')
{
ticketType = 'E';
break;
}
else
{
cout << "Then choose a row numbered 1-" << (FC_Row) << endl;
cin >> rowNum;
}
if(回复=='Y')
{
ticketType='E';
打破
}
其他的
{
coutif(回复='Y')
{
ticketType='E';
break;//我希望它退出while循环,我从这个break中得到一个语法错误。
}
其他的
{
不能在“if”附近的语句周围用花括号括起来
if (reply = 'Y')
{
ticketType = 'E';
break; // I want this to exit the while loop, I get a syntax error from this break.
}
else
{
cout << "Then choose a row numbered 1-" << (FC_Row) << endl;
cin >> rowNum;
}
if(回复='Y')
{
ticketType='E';
break;//我希望它退出while循环,我从这个break中得到一个语法错误。
}
其他的
{
CUT< P >你认为<代码>如果(回复=‘Y’)< /代码>意味着什么?如果你不确定,想想什么是代码>回复=“y”<代码>意味着,然后考虑它意味着在<代码>内,如果 < < /P> > p>你在做< /p>
if (reply = 'Y') //Should be reply=='Y'
ticketType = 'E';
reply='Y'将始终为真,因此您将始终输入if()条件体
if (reply = 'Y') //assignment
这是在中执行作业,如果。将其设置为=
if (reply == 'Y') //comparison!
我发现你的代码有三个问题
首先,你使用的是<代码>(回复= y)< /COD> .<代码>=/COD>是C++中的赋值运算符,而不是比较运算符。
第二,你的缩进和大括号被拧紧了。记住正确的形式是:
if (condition)
{
// Stuff
}
除非你在声明中只做了一件事(你不是)
第三,你在while(cin.get()!='\n');
中有一个分号。杀死它。如果它是do while
循环的一部分,你应该在while
之后有一个分号。一个避免=when你想要==错误并与文字常量比较的好方法是将表达式反转为
“Y”==答复
如果使用only=将产生编译错误,我想这就是他得到“toupper”函数调用的原因。
if (condition)
{
// Stuff
}