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。您可以使用其中一些方法解决此问题。