gpt4 book ai didi

程序中的 Java 运行时错误 InputMismatchException

转载 作者:行者123 更新时间:2023-12-02 10:51:54 26 4
gpt4 key购买 nike

当我运行此代码时,我在 coderunner(提交作业代码的应用程序)中获取此代码

    Scanner scan = new Scanner(System.in);

double maxn = -90;
double maxs = 90;
double maxe = 180;
double maxw = -180;
double lat = 0;
double longa = 0;
int x = 1;

while (x != 0) {
System.out.println("Please enter a latitude:");
lat = scan.nextDouble();
if (lat >= maxn && lat <= 90)
maxn = lat;
if (lat <= maxs && lat >= -90)
maxs = lat;

System.out.println("Please enter a longitude:");
longa = scan.nextDouble();
if (longa <= maxe && longa >= -180)
maxe = longa;
if (longa >= maxw && longa <= 180)
maxw = longa;

System.out.println("Would you like to enter another location?");
x = scan.nextInt();

}
System.out.println("Farthest North: " + maxn + "\nFarthest South: " + maxs + "\nFarthest East: " + maxe + "\nFarthest West: " + maxw);

我收到以下错误:

    Runtime Error

Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at Lesson_20_Activity.main(Main.java:315)
at Ideone.assertRegex(Main.java:85)
at Ideone.assertRegex(Main.java:76)
at Ideone.test(Main.java:40)
at Ideone.main(Main.java:29)

我不知道这个错误是如何发生的,因为我是编码新手。有人可以解释一下这意味着什么以及如何解决它吗?

编辑:我的输入是

请输入纬度:
41.678
请输入经度:
69.938
您想输入另一个位置吗?
1
请输入纬度:
41.755
请输入经度:
69.862
您想输入另一个位置吗?
1
请输入纬度:
41.829
请输入经度:
69.947
您想输入另一个位置吗?
1
请输入纬度:
300
请输入经度:
69.947
纬度或经度不正确
请输入纬度:
41.827
请输入经度:
69.904
您想输入另一个位置吗?
0
最北端:41.829
最南端:41.678
最远东:69.947
最西边:69.862

此外,我尝试将 x 更改为 double 和字符串输入,但没有成功。我得到的每个错误分别是 NoSuchElementError 和 NoSuchLineError

最佳答案

来自Javadoc , InputMismatchException 在以下情况下抛出:

Thrown by a Scanner to indicate that the token retrieved does not match the pattern for the expected type, or that the token is out of range for the expected type.

在您的代码中,您正在调用 scan.nextInt()scan.nextDouble()。确保您仅分别向每个调用传递有效的 intdouble 值。也就是说,当扫描仪需要 int 值(scan.nextInt())时输入 double 值将引发上述错误。

关于程序中的 Java 运行时错误 InputMismatchException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52108120/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com