Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 卡在while循环中的if语句中_C++_Loops - Fatal编程技术网

C++ 卡在while循环中的if语句中

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

有人能在这个循环中发现我的错误吗?在我读了回复后,我似乎陷入了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 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';
打破
}
其他的
{
cout
if(回复='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
}