错误"else"之前的预期主表达式

Expected primary-expression before "else" error

本文关键字:表达式 else 错误      更新时间:2023-10-16

我收到第一个其他expected primary-expression before "else"错误,我不明白为什么。我三重检查了所有的支撑。

if(Owin = win)
{
    cout << "The computer has defeated you!nn";
    cout << "Would you like to play again? (Y or N) : ";
    cin >> restart;
    if(restart == 'Y' || restart == 'y');
    {
        cout << "nnn";
        main()    ;
    }
    else
    {
        cout << "Good Bye!nn";
        system("pause");
        return(0);
    }
}
else
{
}
if(restart == 'Y' || restart == 'y');

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

在你的代码中,

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

尾随分号是一个空语句,它构成if块的主体(从而结束)。在这一点上,你可能已经有一个else.但不是在随后的声明之后,这不是if.

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

main()    ;

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

编译器可能允许它而不进行任何诊断,但正式地,您就有了未定义的行为,任何事情都可能发生。

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

if语句后有一个尾随分号。