【发布时间】:2017-03-25 07:12:36
【问题描述】:
所以,在这个程序中,当 while 循环结束时,它会正确显示“You Win!”它确实执行了询问用户是否要查看积分的代码。但是,在问题之后不接受输入,并且程序在不接受任何输入的情况下结束。
Scanner scan = new Scanner(System.in);
System.out.println("Would you like to play a game called Threes? Y/N");
String answer = scan.nextLine(); //Simple yes or no
if (answer.contains("Y") || (answer.contains("y"))) {
System.out.println("OK, want to know how it works? Y/N");
String answer2 = scan.nextLine();
if (answer2.contains("n") || (answer2.contains("N"))) {
System.out.println("OK, Enter a single number.");
int mistake = 0; //Used as a counter for number of division mistakes made
int numstart = scan.nextInt(); //First number input
int current = numstart; //Current number displayed - starts as the first number
System.out.println("Enter 1 or -1 if you're adding or subtracting, and 0 to divide.");
System.out.println(numstart); //Displays first number input
int input = scan.nextInt(); //First function performed by user
while (current != 1) { //The game will run until the number '1' is reached
if (input == 1) { //If '1' is input, add one to the number, and display new number
current++;
System.out.println(current);
input = scan.nextInt();
}
if (input == -1) { //If '-1' is input, subtract one from the number, and display new number
current--;
System.out.println(current);
input = scan.nextInt();
}
if (input == 0) { //If '0' is input, try to divide
if (current % 3 != 0 && current != 1) { //If you can't divide by three, try again
System.out.println("Try again.");
mistake++;
input = scan.nextInt();
}
if (current % 3 == 0) { //If you can divide, do it and display new number
current = current / 3;
System.out.println(current);
input = scan.nextInt();
}
}
if (input == 69 || input == 666) //Cheat code! If you input 69 or 666, you automatically win
break;
if (((input > 1) && (input != 69) && (input != 666)) || input < -1) { //If input is not valid, try again and display error
System.out.println("Error - wrong input.");
input = scan.nextInt();
}
}
System.out.println("You Win! Mistakes: " + mistake + "\n"); //Will display a win condition, and amount of division errors
System.out.println("Thank you for playing Threes \n - Chris Burbach");
}
System.out.println("Credits? Y/N");
String credits = scan.nextLine();
if(credits.contains("Y")||credits.contains("y"))
{
System.out.println("\n***********************************************************************");
System.out.println("*Threes: a game of dividing by three - inspired by my boredom in class*");
System.out.println("***********************************************************************");
【问题讨论】:
-
您的代码中有两次
System.out.println("You Win!...,所以我不确定您在说什么。你试过调试吗?
标签: java input while-loop java.util.scanner