-4

可能重复:
“else”错误之前的预期主表达式

因此,当我尝试绕过第一个 if 语句以继续程序的其余部分时,它总是执行第一个 if 语句,我只是想知道我对 else 所做的工作是否有效。我已经尝试在 else 语句中包含我的其余代码,但它也不起作用。没有编译器错误,所以请帮助!谢谢你!

if(Owin = win)
{
    cout << "The computer has defeated you!\n\n";
    cout << "Would you like to play again? (Y or N) : ";
    cin >> restart;
    if(restart == 'Y' || restart == 'y');
    {  
        cout << "\n\n\n";
        main()    ;  
    }

    else 
    {   
        cout << "Good Bye!\n\n";
        system("pause");
        return(0);
    }  
}
else
{ }
4

3 回答 3

2

您使用=而不是==. 所以你只是分配winOwin,这对于if, if总是正确的Owin > 0

此外,; 从第二个if.

编写也是多余的,else { }因为您在else.

作为模板,这会更好:

int main()
{
    // Declarations...

    while(restart != 'Y' && restart != 'y')
    {
        if(Owin == win)
        {
            cout << "The computer has defeated you!\n\n";
            cout << "Would you like to play again? (Y or N) : ";
            cin >> restart;
        }
        else 
        {
            // Do the rest here
        }
    }
    cout << "Good Bye!\n\n";
    system("pause");
    return 0;
}
于 2012-12-19T04:08:24.267 回答
1

if 语句的语法不正确 if 语句的正确语法是

if(condition)
{
 //body of if statement
}

您必须使用检查运算符,例如 == not = if 的条件应该返回布尔值

= 用于初始化, == 用于检查两个事物是否相等,否则使用

if(Owin > 0)

或使用

if(Owin == win)
于 2012-12-19T04:09:24.150 回答
0

if(Owin = win)win如果不是零/空,则始终为真,因为它分配winOwin然后检查 的值Owin并将非零/非空值视为TRUE.

于 2012-12-19T04:08:07.950 回答