2
else if((RI >= 181) && (RI <= 210)){
        if((ICT1 = false) || ((ICT2 = false) || (ICT3 = false))){
        cout << "ICT \n";
        if(ICT1 = false){
            ICT1 = true;
            goto endICT;
        }
        if(ICT2 = false){
            ICT2 = true;
            goto endICT;
        }
        if(ICT3 = false){
            ICT3 = true;
            goto endICT;
        }
            endICT:
    }

你好呀!这只是我程序的一部分,这段代码出现了几次,有不同的变量和其他东西。当我编译代码时,我得到“错误 C2143:语法错误:缺少';' 在'}'之前“我是所有这些编码的新手,希望有任何帮助!谢谢你的时间!编辑:对不起,我之前没有包含足够的代码!基本上是选择一个随机数,如果它在一个范围内,它会通过这部分。此范围只能选择 3 次,因为第一个“如果”将不成立。感谢您迄今为止的所有帮助!错误也在“endICT:”行中。

4

4 回答 4

4

只需插入一个空语句:

                   if(ICT3 = false){
        ICT3 = true;
        goto endICT;
    }
        endICT: ;
}
于 2013-04-01T22:29:01.997 回答
4

首先请注意,使用goto语句被认为是一种不好的做法。只有在没有其他选择的情况下才应该使用它。

这段代码还有更多的东西。我在代码中添加了一些注释

if(ICT3 = false) //this will assign value false into variable ICT3
     //you might want to write if(ICT3 == false) to compare and execute
{
   ICT3 = true;
   goto endICT; //this goto statement is completely redundant
}

//I assume that you want to have some code here, that does not execute
//if ICT3 == false in the first place... You should use if() ... else
//statement instead

endICT: ; //You are missing some ; here should be enough
}

有关 C/C++ 中的流控制语句的更多信息,请转到此处。有关 C/C++ 中运算符的更多信息,请尝试此

于 2013-04-01T22:47:16.033 回答
0

可能编译器与您的标签 endICT 混淆:

然后是关闭)

于 2013-04-01T22:29:21.160 回答
0

这在语义上等同于您发布的代码:

else if ( RI >= 181 && RI <= 210 )
{
    cout << "ICT \n";
    if ( ! ICT1 )
        ICT1 = true;
    else if ( ! ICT2 )
        ICT2 = true;
    else if ( ! ICT3 )
        ICT3 = true;
}
于 2013-04-02T22:06:01.583 回答