我得到了第一个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
{
}
答案 0 :(得分:2)
if(restart == 'Y' || restart == 'y');
删除那里的分号以修复错误。此;
结束了您的if
语句,这意味着else
实际上不属于任何if
语句,因此错误。
答案 1 :(得分:2)
在您的代码中,
if(restart == 'Y' || restart == 'y');
尾随分号是空语句,它构成if
块的主体(从而结束)else
块。此时你可能有一个if
。但不是在后续声明不是main() ;
之后。
此外,更重要的是,在您的代码中,调用
main
假设它在全局命名空间中调用main
,则无效。 {{1}} (在全局命名空间中)是一个特殊功能。它的特殊属性之一是它不能被称为。
编译器可能会在没有任何诊断的情况下允许它,但正式地,您可以使用未定义的行为来发生任何事情。
相反,使用循环来实现重复。
答案 2 :(得分:1)
在if
声明之后,您有一个尾随分号。