有人能在这个循环中发现我的错误吗?在我阅读回复后,我似乎陷入了If语句。另外,在没有条件为真的情况下放入中断以退出循环似乎会抛出一个错误:“在其他之前预期的主要表达式”
代码:
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;
}
else
{
cout << "Then choose a row numbered 1-" << (FC_Row) << endl;
cin >> rowNum;
}
}
谢谢你们,得看那些括号。
答案 0 :(得分:4)
您需要大括号,并在=
条件下将==
替换为if
:
if (reply == 'Y')
{
ticketType = 'E';
break;
}
else
{
cout << "Then choose a row numbered 1-" << (FC_Row) << endl;
cin >> rowNum;
}
答案 1 :(得分:3)
您缺少{}
并且您正在使用=
==
if (reply == 'Y') {
ticketType = 'E';
break;
} else {
cout << "Then choose a row numbered 1-" << (FC_Row) << endl;
cin >> rowNum;
}
调高编译器警告级别,并确保代码编译无警告。大多数编制者都会发现if (reply = 'Y')
问题并发出警告。
答案 2 :(得分:0)
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;
}
答案 3 :(得分:0)
在'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;
}
答案 4 :(得分:0)
您认为if (reply = 'Y')
是什么意思?如果您不确定,请考虑reply = 'Y'
的含义,然后考虑它在if
中的含义相同。
答案 5 :(得分:0)
你在做什么
if (reply = 'Y') //Should be reply=='Y'
ticketType = 'E';
reply ='Y'永远都是真的,因此你总是会输入if()条件体。
答案 6 :(得分:0)
if (reply = 'Y') //assignment
这是在if
中进行作业。设为==
。
if (reply == 'Y') //comparison!
答案 7 :(得分:0)
我可以看到您的代码存在三个问题。
首先,您正在使用if (reply = 'y')
。 =
是C ++中的赋值运算符,而不是比较运算符。你想要if (reply == 'y')
。
其次,你的缩进和括号被搞砸了。请记住,正确的形式是:
if (condition)
{
// Stuff
}
除非你只是在声明中做了一件事(你不是这样)。
第三,while(cin.get()!='\n');
中有分号。杀死它。如果它是while
循环的一部分,则do while
之后应该只有分号。
答案 8 :(得分:0)
当你想要==错误并且与文字常量进行比较时,避免=的一个好方法是将表达式反转为
'Y'==回复
如果仅使用=,则会产生编译错误