Java 我的代码循环了错误的代码段

Java 我的代码循环了错误的代码段,java,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)

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

代码如下:

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;
        }
      }
    }
  }
}

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

您错误地编写了while循环的条件。=是赋值,==是比较。你应该写==而不是=否则你每次都给bool赋值true


此外,一个很好的做法是反转语法,即将常量放在左边:true==bool,以防止此类键入错误,因为如果您错误键入true=bool,编译器将生成错误。

如果您打算让选项退出或重试?而不是你想抛多少硬币?您应该在单独的循环中编写它们。你得到的原因是你想翻动多少枚硬币?重试后是因为您在重试循环中设置了bool2=false。使用现有逻辑退出或重试?重试后将永远不会到达,因为在while循环中bool2未设置为true。

当我这样做时,如果我正确写入重试循环,但在再次翻转硬币后,它会立即询问您要翻转多少硬币?而不是要求退出或重试?当您退出最后一个循环时,它返回到外部循环。@BerkleyLamb我如何阻止它这样做?我想,这取决于您打算做什么?你只想问一次多少硬币吗?然后将该部分从最外层的环中拉出。如果您只想重新滚动相同数量的卷,则可能需要另一层coins@BerkleyLamb我希望这是循环,但只有当他们选择重试一次,而不是直接在它翻转硬币。请您建议编辑,使其正常运行?我已尝试重新执行循环,但仍然遇到问题当我将其从重试循环中删除时,它会持续循环退出或重试。请您建议正确的更改保留您的逻辑,并在退出循环而不是重试循环中将bool2设置为false。您可以使用其中一些方法解决此问题。