我试图让我的代码在用户输入十进制数/负数时提示错误消息,并将继续循环,直到实现大于0的正数。
这就是我目前所拥有的;
public static void numberFunctions()
{
System.out.println("Calculating a Factorial");
Scanner myScan= new Scanner (System.in);
System.out.println("Please enter the number you'd like to use: ");
int number = myScan.nextInt();
System.out.println(number);
if(number>0)
{
int factorial = 1;
int count;
for (count = number; count >=1; count --)
{
factorial = factorial * count;
System.out.print(count +" * ");
}
System.out.println(" = " + factorial);
}
else
{
System.out.println("ERROR! Please enter a positive number");
}
}
负数检查部分做得很好。但是,如果用户输入无效字符串或实数,这行代码将引发异常,因此我们需要捕获该错误:int number=myScan。nextInt()
在使用扫描仪后始终关闭扫描仪也是一个很好的做法,因此我们将把它放在最后一部分。以下是我建议您使用的代码:
public static void numberFunctions()
{
System.out.println("Calculating a Factorial");
Scanner myScan= new Scanner (System.in);
System.out.println("Please enter the number you'd like to use: ");
try {
int number = myScan.nextInt();
if(number>0)
{
int factorial = 1;
int count;
for (count = number; count >=1; count --)
{
factorial = factorial * count;
System.out.print(count);
if (count != 1) {
System.out.print(" * ");
}
}
System.out.println(" = " + factorial);
}else {
System.out.println("ERROR! Please enter a positive number");
}
}catch(InputMismatchException ex) {
System.out.println("ERROR! Please enter a positive number");
}finally {
myScan.close();
}
}
在获取输入时添加try/catch
块。
try {
int number = myScan.nextInt();
}
catch(InputMismatchException e) {
System.out.println("Enter integer numbers only");
System.out.println(scanner.next() + " was not valid input.");
}
首先你可以创建一个方法例如
public static int getInteger() {
}
在该方法中,您可以要求用户输入一个整数,使用一个尝试在一个循环中捕获一个块,这样,如果他们输入一个双代码或字符串,它将捕获异常并要求用户再次尝试输入整数。
一旦你明白了这一点,你就可以调用这个方法并检查返回的数字是否大于0。
一旦您创建了这个方法,您就可以随时使用它向用户询问整数。
问题内容: 如何检查数字是否为小数? 使用Objective-C: 问题答案: 如果将数字四舍五入(可以使用下限功能来完成),然后从原始数字中减去该数字,则会得到两者之间的差。 编辑- 我的原始答案建议计算数字与其下限等值之间的差,以查看小数点后是否有任何单位。但是,如后面所述,可能存在舍入错误,这会导致内存中值的表示与实际含义略有不同。 例如,3.0可以表示为3.00000000000001,因
我正试图解析颤振中的输入,并从中提取双倍值。即用户只能输入十进制数。 为此,我使用TextField: 但在iOS设备上,我的键盘上有数字和逗号(,),而不是点()。当用户输入逗号时,我正在分析字符串,出现如下错误: 处理这件事最好的方法是什么?一些肮脏的解决方案是: 使用TextInputType.number有选项(签名:真,十进制:真)-这给键盘不仅有数字和用户输入点。 也许可以先用点代替逗
用户用十六进制或二进制输入一个数字(必须以0x或0b为前缀,如果没有给出错误信息) 我不能用基数,我只是用整数。parseInt(s) 我不知道怎样才能使这个计划奏效。。请帮帮我,我还缺什么?
在标准库中学习十进制,这似乎是python 3.6中的一个新函数: 返回一对整数(n, d),这些整数以小数形式表示给定的Decimal实例,以最低条件表示,并带有正分母 所以我试了一下: 对于工作正常,但是很难相信是的最低分数项,也许可以是更好的输出? 好的,我在使用而不是时得到了回答,那么这是否意味着在使用Decimal()时,最好输入而不是?
我必须为赋值创建二进制到十进制的数字转换器。这项任务有一些限制。它们是:1。没有无限循环2。中断语句以退出循环3。没有标签或转到语句4。不使用整数。parseInt(字符串s,整数基数) 我得到了部分转换下来,但我有异常处理的问题。我试图在输入不是二进制时显示错误消息,并继续允许用户输入,每次无效的尝试都显示相同的错误消息。 我曾尝试用while和do-while循环替换for循环,但结果对我来说
在使用“number”类型和值“1,5”的输入发布表单后,浏览器(Chrome 43.0.2357.130,FF 38.0.5)发送带有点作为小数分隔符的数字,但输入具有属性lang=“cs”(在捷克共和国,我们使用十进制逗号),因此对于ASP。NETMVC的格式不正确。 如何设置浏览器(表单/输入)以发送用户真正填写的内容(在我的示例中为“1,5”)? 从浏览器发送的表单数据: