我的代码循环错误的代码部分

时间:2016-09-30 18:40:30

标签: java

由于某种原因,当我写“重试”时,它只是再次提示我是否要重试。我该如何解决这个问题?

以下是代码:

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;
    Boolean bool2 = true;


    while (bool=true){
       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;
      }
      while (bool2=true) {

        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");
          System.out.println ("Quitting Interactions...");
          Thread.sleep(1000);
          System.exit(0);
        }

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

        else {
          System.out.println("That Was An Invalid Answer");
          bool=false;
          bool2=true;
        }
      }
    }
  }
}

3 个答案:

答案 0 :(得分:3)

你需要一个&#34; ==&#34;而不是&#34; =&#34;在你的while循环中。您每次都将bool2设置为true,而不是检查它的值。

答案 1 :(得分:1)

你错误地写了while循环的条件。 n(n-1)/2是作业,.register(classOf[List[someClassType]]) 是比较。您应该写=而不是==,否则您每次都会为布尔分配真实。

此外,最好是反转语法,即将常量放在左侧:==以防止此类拼写错误,因为如果您错误输入=,编译器将生成错误。

答案 2 :(得分:1)

如果您打算选择“退出或重试?”而不是“你愿意翻多少枚硬币?”你应该把它们写在不同的循环中。你得到“你想翻转多少钱?”的原因重试之后是因为你在重试循环中设置了bool2 = false。使用现有逻辑“退出或重试?”重试后永远不会到达,因为在while循环中bool2未设置为true。