【问题标题】:Java -- how to loop a quiz until the user decides to quit?Java——如何循环测验直到用户决定退出?
【发布时间】:2016-09-04 18:43:08
【问题描述】:

我有以下简单的 Java 程序,它会提示用户进行减法测验。有人可以在正确的道路上推动我如何实现一个不断生成数字、进行计算、提示用户并提供反馈直到用户选择停止的循环吗?我想它会涉及一个while循环,但是用户如何表示他们想要停止?我知道我可以告诉他们“只要你想退出就按___”,但程序的其余部分会不断提示用户输入一个整数......那么如果他们选择输入一个退出键怎么办(假设“ 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 );


    }


}

【问题讨论】:

  • 您可以通过将 main 方法的内容包装到一个循环中来做到这一点。 More about while loops , And for loops
  • 除了Titus所说的,你可以检查用户是否输入了退出字符串(CTRL C、“exit”等),如果是则返回。

标签: java while-loop prompt


【解决方案1】:

首先删除最新的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 中的所有内容都不太熟悉,但从我刚刚在 Oracle 网站上看到的内容来看,do-while 循环似乎正是我想要的!谢谢!澄清一下,字符串反馈是我对用户的反馈。如果你能解决这个问题,我会继续接受你的回答!
猜你喜欢
  • 2014-04-12
  • 1970-01-01
  • 1970-01-01
  • 2015-01-18
  • 1970-01-01
  • 1970-01-01
  • 2017-06-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多