当前位置: 首页 > 面试题库 >

如何提示用户输入0到100之间的数字?

陶智
2023-03-14
问题内容

尝试以0到100之间的整数形式获取用户输入,并提示用户“重试”,只要他们的输入不符合此条件。

到目前为止,我的代码在实现我的目标方面有些成功:

import java.util.Scanner;

public class FinalTestGrade
{
    public static void main(String[] args)
    {
        Scanner studentInput = new Scanner (System.in );
        int testGrade;

        System.out.println("Please enter your test grade (0 to 100)");
        while (!studentInput.hasNextInt()) 
            {
            System.out.println("Your input does not match the criteria, please enter a number between 0 and 100");
            studentInput.next();
            }
        testGrade = studentInput.nextInt();

        while (testGrade > 100 || testGrade < 0) 
            {
            System.out.println("Your input does not match the criteria, please enter a number between 0 and 100");
            testGrade = studentInput.nextInt();
            }

如您所见,程序将检查输入是否为int。一旦用户成功输入一个int值,程序就会检查以确保其输入值在0到100之间。当用户响应第二个提示(由第二个while循环启动)输入一个非int值时,就会出现问题。下面是一个示例:

run:
Please enter your test grade (0 to 100)
P
Your input does not match the criteria, please enter a number between 0 and 100
109
Your input does not match the criteria, please enter a number between 0 and 100
P
    Exception in thread "main" java.util.InputMismatchException
            at java.util.Scanner.throwFor(Scanner.java:840)
            at java.util.Scanner.next(Scanner.java:1461)
            at java.util.Scanner.nextInt(Scanner.java:2091)
            at java.util.Scanner.nextInt(Scanner.java:2050)
            at finaltestgrade.FinalTestGrade.main(FinalTestGrade.java:24)
Java Result: 1
BUILD SUCCESSFUL (total time: 9 seconds)

这么长的话来说,我想知道是否有一种方法可以组合我的while循环,以便接受以0到100之间的int形式表示的输入并保存为变量。所有不符合此条件的输入都应触发提示,该提示会重复进行,直到输入符合此条件。有什么建议?


问题答案:
int testGrade = -1 ;
Scanner studentInput = new Scanner(System.in);
while (testGrade > 100 || testGrade < 0) 
{
   System.out.println("Your input does not match the criteria, please enter a number between 0 and 100");

   while(!studentInput.hasNextInt())
   {
       studentInput.next() ;
   }
   testGrade = studentInput.nextInt();
}

有一个无限循环来检查流中是否有无效字符。如果是这样,那就食用它,这就是hasNextInt()目的。如果输入有效内容,则该循环退出。



 类似资料:
  • 问题内容: 我正在编写一个提示输入的函数,然后根据输入返回不同的结果,然后再次要求输入。我已经得到它返回正确的值,但是我不确定如何使它再次提示输入。 这是该函数的实际代码: 在其中包含return的每一行中,它只是在调用先前定义的函数。的和是词典,前面所定义。 我只能使用内置函数。 问题答案: 我会用while循环来做。像这样:

  • 问题内容: 我遇到一种情况(在硒测试期间),在这种情况下,用户将收到安全代码。然后,用户必须先输入安全密码,然后才能继续操作。 我不太确定如何获得用户输入的值。我浏览了硒文档,并提出了这个建议。不幸的是,它并不是很有效。 有人可以指出我正确的方向吗? 问题答案: 似乎您必须先接受并关闭提示,然后才能存储和使用该值

  • 问题内容: 我有一种情况(在selenium测试期间),在这种情况下,用户将收到安全代码。然后,用户必须先输入安全代码,然后才能继续操作。 我不太确定如何获得用户输入的值。我浏览了selenium文档,并提出了这个建议。不幸的是,它并不是很有效。 有人可以指出我正确的方向吗? 问题答案: 似乎您必须先接受并关闭提示,然后才能存储和使用该值

  • 我正在编写一个Python脚本,它从名为“read_file”的熊猫数据帧中获取特定数据,并将其写入csv文件。为此,我循环遍历DataFrame的行,直到满足某个条件,也就是说,我将数据放入字典中,然后使用“To_csv”函数更新csv文件。当然,执行同一件事情的方法更少,也更简单,但我将把优化留到另一天(尽管我愿意接受建议)。 我想知道是否有一种方法可以提示用户决定他们想要写数据的方式。基本上

  • 我有一个Powershell脚本,它需要执行一个命令行可执行文件,提示用户输入(没有命令行参数)。大概是这样的: 实际的可执行文件是一个编译过的二进制文件,我不能修改它,但是这个示例脚本可以解决这个问题。我的Powershell脚本调用可执行文件: 在运行时,我会被提示输入一些内容: 我需要能够在没有用户干预的情况下填写输入请求。当< code>promptsForInput.ps1提示用户输入时

  • 当用户输入字符串(例如“”)时,程序应该给出输出“”,然后提示用户键入有效输入。当我键入字符串时,我会在线程“main”java.util.InputMismatchException中得到错误消息