【发布时间】:2015-10-28 15:21:35
【问题描述】:
如何更改此代码以使变量 operation2 在第二个 switch 函数中工作。
当我执行parseDouble 时,会出现错误bla bla parsedouble。
即使我尝试创建全局operation2,它也不起作用。
package matura;
import java.util.Scanner;
public class MeasureUnits {
public static void main(String args[])
{
String operation;
String operation2;
Scanner value = new Scanner(System.in);
System.out.println(" Write value: :");
double wartość;
wartość = value.nextDouble();
double yard, inch, foot, mile;
double metr, decymetr, centymetr, kilometr;
centymetr = 1;
metr = 100 * centymetr;
centymetr = 1;
kilometr = centymetr * 100000;
decymetr = 10 * centymetr;
yard = 0.9144 * metr;
inch = 2.54 * centymetr;
mile = 1.609344 * kilometr;
foot = 30.48 * centymetr;
Scanner input1 = new Scanner(System.in);
System.out.println(" Choose one of measure units" + " 'yard' 'inch' 'feet' 'mile' :");
operation2 = input1.next();
switch (operation2) {
case "yard":
System.out.println("You've choosed 'yard' ");
break;
case "inch":
System.out.println(" You've choosed 'inch'");
break;
case "mile":
System.out.println(" You've choosed 'mile'");
break;
case "foot":
System.out.println("You've choosed 'foot'");
break;
}
{
Scanner input2 = new Scanner(System.in);
System.out.println(" Choose one of polish measure units" + " 'metr' 'centymetr' 'decymetr' 'kilometr' :");
operation = input2.next();
switch (operation) {
case "metr":
System.out.println(operation2 * wartość / 100);
break;
case "centymetr":
System.out.println(operation2 * wartość / 100);
break;
case "kilometr":
System.out.println(operation2 * wartość / 100000);
break;
case "decymetr":
System.out.println(operation2 * wartość / 10);
break;
}
}
}
【问题讨论】:
-
bla bla parsedouble称为错误消息。一些才华横溢的程序员花了很长时间研究编译器,以便它能给你有意义和有用的错误消息。请了解它们在调试中是必不可少的。所以“废话”对任何人都没有帮助。此外,switch不是一个函数,你不能在双精度上使用switch。在此处查看完全相同的问题:stackoverflow.com/questions/5141830/… -
除了上述所有内容之外,我很难相信您的实际代码是这样格式化的。你能把它整理一下,这样我的眼睛就不会疼了吗?
-
bla bla parsedouble只是另一个 pesky 错误消息,告诉您究竟出了什么问题以及发生在哪里。提示:你应该阅读它,如果你不明白它是什么以及它发生的原因,请粗略地用谷歌搜索并努力纠正它。如果您仍然卡住了,那么您可以在这里提问。 -
我将 double 更改为 int,但不知道该放在哪里...如果在第一次切换中,我在英语度量单位等之后出现错误。线程“main”中的异常 java.lang.NumberFormatException :对于输入字符串:java.lang.Integer.parseInt(Integer.java:580) 的 java.lang.Integer.parseInt(Integer.java) 的 java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) 的“码” :615) 在 matura.MeasureUnits.main(MeasureUnits.java:39) Java 结果:1
标签: java calculator units-of-measurement measure