在Java中使用扫描仪
我正在处理一个Java赋值,每当我在扫描器中插入一个十进制数时,代码就会返回错误。我深入了解到,这并不是因为数字是十进制的,而是因为无论何时输入任何不是数字的字符,都会返回此错误在Java中使用扫描仪,java,Java,我正在处理一个Java赋值,每当我在扫描器中插入一个十进制数时,代码就会返回错误。我深入了解到,这并不是因为数字是十进制的,而是因为无论何时输入任何不是数字的字符,都会返回此错误 Exception in thread "main" java.util.InputMismatchException at java.util.Scanner.throwFor(Unknown Source) at java.util.Scanner.next(Unknown Source)
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at population.main(population.java:14)
如果有人能帮我让小数生效那就太酷了,这是我的错误代码
import java.util.Scanner;
public class population {
public static void main(String[] args) {
System.out.print("Enter the amount of years:"); // Prompts the user
Scanner input = new Scanner(System.in); // Defines the scanner
double value = input.nextInt(); // Defines the variable
double A = (60.0 * 24.0 * 365.0); // Brings time from seconds to years
double B = ((60.0 / 7.0) * A); // Births per year
double C = ((60.0 / 13.0) * A); // Deaths per year
double D = ((60.0 / 45.0) * A); // Immigration per year
double E = (B + D - C); // Change per year
double F = ((E * value) + 312032486.0); // Change in population after 5 years
System.out.println(F);
}
}
input.nextInt()代码>接受整数。将其更改为input.nextDouble()
-将输入的下一个标记扫描为int
扔
InputMismatchException-如果下一个标记与整数正则表达式不匹配,或超出范围
input.nextInt()
接受int类型的输入
使用
input.nextDouble()
由于输入无效而发生异常。您可以添加try-catch块。请参阅下面的代码。
有关更多信息,请参见
因为您是“论坛”的新手,所以这里不是完成作业的合适地方:)java.util.InputMismatchException
是一个非常描述性的错误;)。使用.nextDouble()
而不是.nexttint()
。它高亮显示红色,并表示“类型扫描程序的方法Double()未定义”。别介意我认为您编辑了它,或者我误读了它。介意我问当它说“资源泄漏”输入“从未关闭”时我是否应该担心吗?input.close()在函数的末尾应该去掉警告
public static void main(String[] args) {
try
{
System.out.print("Enter the amount of years:"); // Prompts the user
Scanner input = new Scanner(System.in); // Defines the scanner
double value = input.nextInt(); // Defines the variable
double A = (60.0 * 24.0 * 365.0); // Brings time from seconds to years
double B = ((60.0 / 7.0) * A); // Births per year
double C = ((60.0 / 13.0) * A); // Deaths per year
double D = ((60.0 / 45.0) * A); // Immigration per year
double E = (B + D - C); // Change per year
double F = ((E * value) + 312032486.0); // Change in population after 5 years
System.out.println(F);
}
catch(Exception e)
{
System.out.println("Invalid Input");
}
}