gpt4 book ai didi

java - 线程 "main"中出现异常,这是什么意思?

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

我正在解决类作业问题。您必须计算两点之间的距离。代码基本完成了,但是有一个问题。当我输入 q 结束循环时。我收到回复消息。

线程“main”java.lang.NumberFormatException中出现异常:对于输入字符串:“q”

at.sun.misc.FloatingDecimal.readJavaFormatString(未知来源)

位于 java.lang.Double.parseDouble(未知来源)

atDistance.main(Distance.java:11)

import java.util.Scanner;
public class Distance {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
while (true){
System.out.print("Enter coordinate for x1: ");
String x1String = input.next();
if (x1String == "q")
break;
double x1 = Double.parseDouble(x1String);

System.out.print("Enter coordinate for y1: ");
String y1String = input.next();
if (y1String == "q")
break;
double y1 = Double.parseDouble(y1String);

System.out.print("Enter coordinate for x2: ");
String x2String = input.next();
if (x2String == "q")
break;
double x2 = Double.parseDouble(x2String);

System.out.print("Enter coordinate for y2: ");
String y2String = input.next();
if (y2String == "q")
break;
double y2 = Double.parseDouble(y2String);

double distance = (Math.pow(x2 - x1,2)) + (Math.pow(y2 - y1,2));
distance = Math.sqrt(distance);
System.out.printf("The distance is %5.2f",distance);
System.out.println("");
}
}//main
}//Distance

这是我写的代码。如有任何帮助,我们将不胜感激。

最佳答案

您不进行字符串与 == 的比较。 “==”比较检查它们是否是完全相同的对象,而不是字符串是否包含相同的字符。尝试使用 x1String.equals("q") 代替。

现在发生的情况是“==”会说“这些不是同一个对象”,然后它会尝试将下一行中的“q”解析为 double ,这会引发异常。

关于java - 线程 "main"中出现异常,这是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7870021/

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