【发布时间】:2020-02-05 15:09:53
【问题描述】:
尝试使用方法进行转换,但是运行的时候什么都没有做,我做错了什么?
java
...
Scanner input = new Scanner(System.in);
int selection = 0;
switch selection {
case 1:
int k = input.nextInt();
System.out.println(celsius(k));
break;
case 2:
int j = input.nextInt();
System.out.println(fahrenheit(j));
break;
}
...
public static double fahrenheit(double celsius) {
double fahrenheit;
fahrenheit = 9 / 5 * (celsius + 32);
return fahrenheit;
}
public static double celsius(double fahrenheit) {
double celsius;
celsius = 5 / 9 * (fahrenheit - 32);
return celsius;
}
...
plpStyleData.setStatus(ActionResponseStatus.SUCCESS);
return plpStyleData;
}
【问题讨论】:
-
"但是运行时它什么也没做" 你是怎么运行它的?就目前而言,这不是有效的 Java 代码。但即使在这种情况下,当您尝试编译它时也会收到一条错误消息。
-
您没有从扫描仪中获得用户的选择。您只是将选择设置为
0并且永远不会更改它。由于开关没有0的情况,因此开关中的任何代码都不会运行。这就是为什么您应该始终拥有default案例的原因。您可以打印出类似“Invalid selection X”(其中 X 是选择)之类的内容,这将为您提供足够的信息来确定问题所在。 -
请注意,9/5 将是 1,而 5/9 将是 0,因为它们是 int 的。您需要使用 9.0/5.0 来强制编译器为您的算术使用双精度数
-
分号很好。适当的缩进是好的。完整、可编译的代码 sn-ps 很好。
标签: java methods switch-statement