2016-09-30 7 views
1

このコードで再試行をクリックすると、動作し、コインを何回ループするかを尋ねられますが、「反転するコイン」を印刷して何もしません。誰でもそれを修正する方法を知っていますか?私はエラーが既にnumloop未満であるXから来ていると思うが、私はそれを修正する方法がわからない。ここでこのループはコードをループしますが、正しいアクションを実行しないのはなぜですか?

は私のコードです:

import java.util.Scanner; 

public class coinFlip { 

    public static void main (String[]args)throws InterruptedException { 

    Scanner sc = new Scanner(System.in); 
    Scanner scan = new Scanner(System.in); 
    int numloop; 
    int x = 0; 
    String choice; 
    Boolean bool = true; 


    while (bool=true){ 
     System.out.println("How Many Coins Would You Like To Flip?"); 
     numloop = sc.nextInt(); 

     if (numloop == 13 || (numloop == 5 || (numloop == 8 || (numloop == 666)))) { 
     System.out.println("ILLUMINATI CONFIRMED ??????"); 
     System.out.println(); 
     } 

     System.out.println("Flipping Coin(s)..."); 
     System.out.println(); 

     while (x<numloop) { 

     int rng = (int)(Math.random()*10+1); 

     if (rng <= 5) { 

      System.out.println("You Flipped Heads"); 
     } 

     else { 
      System.out.println("You Flipped Tails"); 
     } 

     x=x+1; 
     } 


     System.out.println(); 
     System.out.println("Would You Like To 'Quit' Or 'Retry'?"); 
     choice = scan.nextLine(); 

     if (choice.equalsIgnoreCase("Quit")) { 
     System.out.println ("Have A Nice Day"); 
     Thread.sleep(1000); 
     System.exit(0); 
     } 

     if (choice.equalsIgnoreCase("Retry")) { 
     bool=true; 
     } 


    } 
    } 
} 

はありがとうございました!

答えて

4

ループ内でxを再初期化することはありません。したがって、それはまだnumLoopと等しくなります。

外部ループの先頭にx = 0を追加すると、ユーザーが再試行を指示するたびに値がリセットされます。それはこの場合には重要ではありませんが

はまた、この行は間違っている:

while (bool=true){ 

booltrueを割り当てますし、常にループを継続すること。通常はwhile (bool)と言うべきですが、決してfalseに設定していないので、代わりにwhile (true)と言うことができます。

+0

ありがとうございました! – Smor

+2

@Smorこれは、コードをステップ実行するためにデバッガを使用することが助けになったはずです。 –

+0

@PeterLawreyそれは正確に何ですか?私はDr. Javaを使用しています。btw – Smor

0

int x=0を最初のwhileループの外側から内側に移動すると、この問題は発生しません。ユーザーが再試行するたびにリセットされます。

Scanner sc = new Scanner(System.in); 
    Scanner scan = new Scanner(System.in); 
    int numloop; 

    String choice; 
    Boolean bool = true; 


    while (bool=true){ 
     int x = 0; 
     System.out.println("How Many Coins Would You Like To Flip?"); 
     numloop = sc.nextInt(); 

     if (numloop == 13 || (numloop == 5 || (numloop == 8 || (numloop == 666)))) { 
      System.out.println("ILLUMINATI CONFIRMED ??????"); 
      System.out.println(); 
     } 

     System.out.println("Flipping Coin(s)..."); 
     System.out.println(); 

     while (x<numloop) { 

      int rng = (int)(Math.random()*10+1); 

      if (rng <= 5) { 

       System.out.println("You Flipped Heads"); 
      } 

      else { 
       System.out.println("You Flipped Tails"); 
      } 

      x=x+1; 
     } 


     System.out.println(); 
     System.out.println("Would You Like To 'Quit' Or 'Retry'?"); 
     choice = scan.nextLine(); 

     if (choice.equalsIgnoreCase("Quit")) { 
      System.out.println ("Have A Nice Day"); 
      Thread.sleep(1000); 
      System.exit(0); 
     } 

     if (choice.equalsIgnoreCase("Retry")) { 
      bool=true; 
     } 


    } 
} 
関連する問題