Java -- 如何循环测验直到用户决定退出?
Java -- how to loop a quiz until the user decides to quit?
我有以下简单的 Java 程序可以提示用户进行减法测验。有人可以在正确的道路上轻推我如何实现一个不断生成数字、进行计算、提示用户并提供反馈直到用户选择停止的循环吗?我想这会涉及一个 while 循环,但用户将如何发出他们想要停止的信号?我知道我可以告诉他们 "press ___ whenever you want to quit",但是程序的其余部分不断提示用户输入一个整数...所以如果他们选择输入一个键退出怎么办(假设 "Q" ) 当给他们下一个问题并且计算机正在等待一个整数的命令行响应时(因为 Q 不是整数)?
import java.util.Random;
import java.util.Scanner;
public class MathQuiz
{
public static void main( String [] args )
{
// random number generator
Random rng = new Random();
// scanner to get user's answer
Scanner scan = new Scanner( System.in );
// generates random number, 1 <= n <= 9
int num1 = rng.nextInt( 10 );
int num2 = rng.nextInt( 10 );
// prompt, answer, user's answer, and feedback
String prompt = "What is " + num1 + " - " + num2 + "?";
int answer = Math.abs( num1 - num2 );
int userAnswer = 0;
String feedback = "That's correct, way to go!";
// figure out which is larger
if( num1 < num2 )
{
prompt= "What is " + num2 + " - " + num1 + "?";
}
System.out.println( prompt );
userAnswer = scan.nextInt();
if( userAnswer != answer )
{
feedback = "That is incorrect.";
}
System.out.println( feedback );
}
}
首先删除最新的if
if( userAnswer != answer )
{
feedback = "That is incorrect.";
}
并将其编辑为
do
{
String feedback ;
/*
your program here
*/
System.out.println("again 'Y'") ;
choice= scan.nextLine() ;
}while("Y".equalsIgnoreCase(choice))
我有以下简单的 Java 程序可以提示用户进行减法测验。有人可以在正确的道路上轻推我如何实现一个不断生成数字、进行计算、提示用户并提供反馈直到用户选择停止的循环吗?我想这会涉及一个 while 循环,但用户将如何发出他们想要停止的信号?我知道我可以告诉他们 "press ___ whenever you want to quit",但是程序的其余部分不断提示用户输入一个整数...所以如果他们选择输入一个键退出怎么办(假设 "Q" ) 当给他们下一个问题并且计算机正在等待一个整数的命令行响应时(因为 Q 不是整数)?
import java.util.Random;
import java.util.Scanner;
public class MathQuiz
{
public static void main( String [] args )
{
// random number generator
Random rng = new Random();
// scanner to get user's answer
Scanner scan = new Scanner( System.in );
// generates random number, 1 <= n <= 9
int num1 = rng.nextInt( 10 );
int num2 = rng.nextInt( 10 );
// prompt, answer, user's answer, and feedback
String prompt = "What is " + num1 + " - " + num2 + "?";
int answer = Math.abs( num1 - num2 );
int userAnswer = 0;
String feedback = "That's correct, way to go!";
// figure out which is larger
if( num1 < num2 )
{
prompt= "What is " + num2 + " - " + num1 + "?";
}
System.out.println( prompt );
userAnswer = scan.nextInt();
if( userAnswer != answer )
{
feedback = "That is incorrect.";
}
System.out.println( feedback );
}
}
首先删除最新的if
if( userAnswer != answer )
{
feedback = "That is incorrect.";
}
并将其编辑为
do
{
String feedback ;
/*
your program here
*/
System.out.println("again 'Y'") ;
choice= scan.nextLine() ;
}while("Y".equalsIgnoreCase(choice))