java如何使用持续提示用户的Dowhile循环?
(我有一个家庭作业问题一直困扰着我,它与Java中的“do while loops”有关。)
它要求我有一个do-while循环,继续提示用户输入一个“小于100的数字”,直到输入的数字实际上小于100
(它将运行三个测试:) 例:测试1: 对于用户输入123、395、25,预期输出为:
Enter a number (<100):
Enter a number (<100):
Enter a number (<100):
Your number < 100 is: 25
(以下是我目前的代码:)
public class NumberPrompt {
public static void main (String [] args) {
Scanner scnr = new Scanner(System.in);
int userInput = 0;
do {
System.out.println("Enter a number (<100):" );
System.out.println("Enter a number (<100):" );
System.out.println("Enter a number (<100):" );
userInput = userInput + 25;
} while (userInput > 100);
System.out.print("");
System.out.println("Your number < 100 is: " + userInput);
}
(我的输出与上面的测试1结果完全匹配,但我意识到我根本没有正确设置循环,因为当它对“-9”进行第二次测试时,输出与我的第一次测试完全相同:)
Enter a number (<100):
Enter a number (<100):
Enter a number (<100):
Your number < 100 is: 25
(这是我介绍循环的第一周,我四处搜索了一些穿行示例,但我没有找到很多“Do”while循环让我想起这一个。如果有人有一些好的提示或指南给我,我将不胜感激。)
# 1 楼答案
一,。阅读价值
正如Juan的评论所暗示的,您并没有阅读用户输入值。基本上,这是通过^{} 方法完成的。此外,
int
是一种基本类型,必须进行初始化。选择0的值。那么为什么不选择101,让它以一个不正确的值开始呢?然后确定while
循环将被触发:二,。永远不要相信用户
2.1异常捕获
以上代码可能足以满足您的任务。然而,为了学习,我有一个基本原则:永远不要相信用户。如果在前面的示例中,如果用户输入
azerty
,那么您的程序将抛出InputMismatchException
。那是什么?这个错误告诉你扫描器需要一个int
,而你给他提供了其他东西:它抛出了这个一个简单的类比是:扫描仪只能吃苹果。你给他一个梨:他吃了一点,然后吐了出来:“我只能吃苹果。”。为了防止你的扫描仪呕吐,你可以问他:“试试看,如果这不是苹果,那我们试试别的。”
在代码中,它提供了如下信息:
如果你不熟悉
try/catch
子句,你可以阅读this2.1扫描仪进料
上述代码不工作。怎样如果你输入的不是一个数字,比如“aaaa”,你会有一个无限的数字
为什么?因为扫描仪没有把你的输入扔掉。基本上,他要么吃了梨(但他会吐),要么把它扔进垃圾箱,但你从来没有告诉他把它扔进垃圾箱!在尝试下一次输入之前,扫描仪需要使用输入
简而言之:
userInput
从101开始,因此进入while
循环aaaa
李>InputMismatchException
。“这不是一个数字!”是打印出来的如何解决这个问题?通过告诉扫描器使用
next()
输入:# 2 楼答案
你不需要写
System.out.println("Enter a number (<100):" );
三次。当用户输入值小于100时,它将自动显示。你可以自己给用户输入赋值,而不是从用户那里获取输入。你应该写下面给出的代码