-4

重複の可能性:
「else」エラーの前にプライマリ式が必要です

したがって、プログラムの残りの部分を続行するために最初の if ステートメントを回避しようとすると、常に最初の if ステートメントが実行されます。残りのコードを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

=の代わりに使用しました==。したがって、 に代入winしているだけで、これは、 ifOwinに常に当てはまります。ifOwin > 0

; また、 2 番目の からを削除し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 の条件はブール値を返す必要があります

= は初期化するためのものであり、== は 2 つのものが等しいかどうかをチェックするためのものであり、そうでない場合は代わりに使用します

if(Owin > 0)

または使用

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

if(Owin = win)がゼロ/null でない場合は常に true になります。これwinは、 に代入winOwinて の値をチェックしOwin、非ゼロ/非 null 値を と見なすためTRUEです。

于 2012-12-19T04:08:07.950 に答える