2

我得到第一个expected primary-expression before "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
if(restart == 'Y' || restart == 'y');

删除那里的分号以修复错误。这;结束了您的if陈述,这意味着else实际上不是任何if语句的一部分,因此是错误的。

于 2012-12-19T03:44:35.023 回答
2

在您的代码中,

if(restart == 'Y' || restart == 'y');

结尾的分号是一个空语句,它形成了块的主体(并因此结束)if。在这一点上,你可能有一个else. 但不是在后续声明不是if.

此外,更重要的是,在您的代码中,调用

main()    ;

假设它调用main全局命名空间中的 ,是无效的。main(在全局命名空间中)是一个特殊的函数。它的特殊属性之一是它不能被调用。

编译器可能会在没有任何诊断的情况下允许它,但正式地你有未定义的行为,任何事情都可能发生。

相反,使用循环来实现重复。

于 2012-12-19T04:04:19.680 回答
1

您的if语句后面有一个分号。

于 2012-12-19T03:44:36.677 回答