2017-06-20 5 views
-1

私はC++でif else pathwayを作ろうとしています。私は、Anakinを選択すると、ブール "Anakin"は= true、そうでなければ "Anakin == true"が出力され、Heatherを選択すると "Anakin == false"、それは同じことを行います。C++他にもテキストプログラムがパスウェイに行かない場合は、

bool anakin; 
char Name[25]; 
string choice; 
int GameState; 
int iRoomCounter[4] = { 0, 0, 0 }; // Used to determine if a room has been 
visited.int main() 
{ 
    cout << "" << endl; 
    cout << "\t\t\tNimbus Town" << endl; 
    cout << "What is your name?" << endl; 
    cout << "Name: "; 
    cin >> Name; 
    cout << "All right " << Name << ", I will let you choose a friend that will be with" << endl; 
    cout << "you along the way, okay? Great." << endl; 
    cout << "Now choose your friend:" << endl; 
    cout << "• Heather" << endl; 
    cout << "• Anakin" << endl; 
    cin >> choice; 
    if (choice == "Heather") { 
     anakin = false; 
     cout << "You chose Heather, good choice!" << endl; 
     GameState = START; 
    } 
    else if (choice == "Anakin") { 
     anakin = true; 
     cout << "Anakin, what a great choice!" << endl; 
     GameState = START; 
    } 
    else { 
     cout << "What?" << endl; 
    } 

    while (GameState != DEATH) { 
     switch (GameState) { 
     case START: { 

      if (iRoomCounter[0] == 0) { 
       if (anakin == true) { 
        cout << "\n'Hello, welcome to Nimbus town.'" << endl; 
        cout << "You jolted awake as an older, white-haired" << endl; 
        cout << "man greeted you. He was in a white tuxedo." << endl; 
        cout << "'My name is Kieran. What about you?'" << endl; 
        cout << "My name is " << Name << "." << endl; 
        cout << "Well " << Name << ", it's nice to meet you." << endl; 
        cout << "\nsomething doesn't feel right about him, but it's probably" << endl; 
        cout << "because I'm new here, you thought." << endl; 
        iRoomCounter[0] = 1; 
        if (anakin == false) { 
         cout << "Anakin is falseo." << endl; 
        } 
       } 
      } 
     } 
     } 
    } 
} 

誰かが私を助けるためにアドバイス/コードを実行するか、与えることになってるものを私に言った場合、私はそれを感謝したい:私は「ヘザー」を選択したとき、私は「アナキン」を選択したかのように、それはコードを出力除き私。 ありがとうございました!

+0

'の#include 'を比較すると、文字列クラスを使用する場合 = だからたとえば ため

anakin = true; 

そして

if (anakin == false) 

を割り当てる場合char配列の代わりに –

+0

コードを切り出してください。 problmが消えた場合は、削除したコードを戻し、別のものを切り出します。問題がまだ残っている場合は、もう少しチョップしてください。これ以上コードを削除できなくなるまで続けます。 –

+0

また、Anakinをtrueに割り当てるときに=の代わりに==を使用しています –

答えて

0

ここでは、if文で代入を行っています。 if文では、値が一致するかどうかをチェックしたいので、==を使用します。新しい値の使用を割り当てるとき、コードの先頭に

+0

私がそうすると、それはケースには入りません。スタートは、Heatherを選択すると最初の行を出力します。 – Ejay

+0

更新された演算子でコードを更新できますか? – user2782999

+0

また、あなたは既にGameState = STARTを最初に宣言していますので、if else文の中で再度設定してください。 – user2782999

1

C++の場合、==を使用して同等性をテストし、=を使用して値を割り当てます。あなたのケースでは、値trueAnakinに割り当てようとしますが、代わりに==演算子を使用します。 Anakin == false;Anakin == true;Anakin = false;Anakin = true;に変更すると、問題が解決する可能性があります。

+0

何も変更されていません。 – Ejay

+0

私はあなたがif文の 'if(Anakin == true){' –

+0

の閉じ括弧も忘れていると思います。 – Ejay

関連する問題