由于某种原因,当我写“重试”时,它只是再次提示我是否要重试。我该如何解决这个问题?
以下是代码:
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;
}
}
}
}
}
答案 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。