2016-09-10 19 views
-4

1から7までの値を入力すると、値が1から7までの条件がチェックされ、入力された数値の配列の値が0ではないこのプログラムは、値ハウス[0]または他のアレイが0の場合、プログラムは、それがdo whileループが正しくループしていない&C++

do 
      { 
       cout << "Player 1\n"; 
       cout << "Please choose your location (1 to 7) => "; 
       cin >> h1in ; // player 1 enters a value 
       cin.clear();// used to clear the value if a str value is entered 
       cin.ignore(1000,'\n');// used to clear the value if a str value is entered 
       if ((h1in<1)||(h1in>7)) 
       { 
        cout << "You entered the wrong input \n\n"; 
       } 
       if(house[h1in-1]==0) 
       { 
        cout<<"jde"; 
       } 

      } while((house[h1in-1]!=0)&(h1in<1)||(h1in>7)); 
if (h1in==1) 
     { 
      for(int i=1;i<7;i++){ 

      house[0]--; 
      house[i]++; 
      if(i==6){ 
       storehouse[0]++; 
       seeds--; 
       house[0]--; 
      } 
      printout(); 

      } 

      } 
      else if(h1in==2) 
      { 
      for(int i=1;i<7;i++){ 
       house[1]--; 
       house[i+1]++; 
       if(i==6){ 
       storehouse[0]++; 
       seeds--; 
       house[1]--; 

       } 
       printout(); 
      } 
      } 
      else if(h1in==3) 
      { 
       for(int i=1;i<7;i++) 
       { 
        house[2]--; 
        house[i+2]++; 
        if(i==6){ 
        storehouse[0]++; 
        seeds--; 
        house[2]--; 
        } 
        printout(); 
       } 
      } 
      else if(h1in==4) 
      { 
       for(int i=1;i<7;i++) 
       { 
        house[3]--; 
        house[i+3]++; 
        if(i==6){ 
        storehouse[0]++; 
        seeds--; 
        house[3]--; 
        } 
        printout(); 
       } 
      } 
      else if(h1in==5) 
      { 
       for(int i=1;i<7;i++) 
       { 
        house[4]--; 
        house[i+4]++; 
        if(i==6){ 
        storehouse[0]++; 
        seeds--; 
        house[4]--; 
        } 
        printout(); 
       } 
      } 
      else if(h1in==6) 
      { 
       for(int i=1;i<7;i++) 
       { 
        house[5]--; 
        house[i+5]++; 
        if(i==6){ 
        storehouse[0]++; 
        seeds--; 
        house[5]--; 
        } 
        printout(); 
       } 
      } 
      else if(h1in==7) 
      { 
       for(int i=1;i<7;i++) 
       { 
        house[6]--; 
        house[i+6]++; 
        if(i==6){ 
        storehouse[0]++; 
        seeds--; 
        house[6]--; 
        } 
        printout(); 
       } 
      } 
+0

を 'not'より多くのコードを作るために、標準C++で提供明確で読みやすく、 '&& 'の代わりに'& 'を書くような事態を避けることができます。この分野で少し挑戦されているVisual C++では、このアプローチを有効にするために ''という強制インクルードを使うことができます。 –

答えて

2

&はビット単位andで実行し続けるループなかった、ということです。これはオペランドの各ビットにバイナリandを実行します。論理and&&演算子が必要です。

ます。また、最後の行にするために、いくつかの括弧を追加する必要があります:私は今、名前 `and`、` or`とを使用することを好む

while((house[h1in-1]!=0) && ((h1in<1)||(h1in>7))); 
+0

まだ動作していません – Teeban

+0

@Teebanあなたの質問はあまり明確ではありません。また、 'house [h1in-1]'がどこに割り当てられているかは表示しません。たぶんあなたは 'と'を全く望んでいないかもしれません。代わりに 'または'を探しているかもしれません。 – anbarbata

関連する問題