我的代码中出现以下错误: - 收回退货声明 -Cannto在第二种方法中找到符号
这是我的代码:
import java.io.*;
import javax.swing.JOptionPane;
public class Converter {
public static void main(String[] args) throws Exception{
//BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String unit = JOptionPane.showInputDialog("Enter unit F or C: ");
String temp1 = JOptionPane.showInputDialog("Enter the Temperature: ");
double temp = Double.valueOf(temp1).doubleValue();
}
public static double convertTemp(){
if((unit.equals("F"))||(unit.equals("f"))){
double c= (temp - 32) / 1.8;
JOptionPane.showMessageDialog(null,c+" Celsius"));
}
else if((unit.equals("C"))||(unit.equals("c"))){
double f=((9.0 / 5.0) * temp) + 32.0;
JOptionPane.showMessageDialog(null,f+" Fahrenheit");
}
}
}
答案 0 :(得分:4)
您的convertTemp方法的返回类型为double。您在JOptionPane上设置值,但不是从方法返回它。你有两个选择:
1)不要在convertTemp中设置JOptionPane上的值。而是返回值并在main方法中设置JOptionPane值
public static double convertTemp() {
double c = 0.0;
/* do stuff */
return c;
}
2)将方法更改为返回void:
public static void convertTemp() {}
答案 1 :(得分:0)
您的方法应该返回double
并且其中没有返回语句。
答案 2 :(得分:0)
convertTemp()函数的return语句在哪里?
答案 3 :(得分:0)
你的方法声明说你返回一个双,但是你不会返回任何东西。
public static double convertTemp(){
只需将其更改为返回void;
public static void convertTemp(){
答案 4 :(得分:0)
如果你要在函数中做的只是显示一个消息对话框,它应该是void类型。调用convertTemp时,不要将变量“f”赋值给任何东西,例如
double x = convertTemp()
所以它应该被宣布为无效,就像你的主要功能一样。
另外,你如何获得convertTemp功能的“临时”?你需要在函数之外将它声明为类的一部分,或者将它传递给convertTemp,如下所示:
convertTemp(double temp)
答案 5 :(得分:0)
public static double convertTemp(){
if((unit.equals("F"))||(unit.equals("f"))){
double c= (temp - 32) / 1.8;
JOptionPane.showMessageDialog(null,c+" Celsius"));
return c; //add this
}
else if((unit.equals("C"))||(unit.equals("c"))){
double f=((9.0 / 5.0) * temp) + 32.0;
JOptionPane.showMessageDialog(null,f+" Fahrenheit");
return f; //add this
}
}
答案 6 :(得分:0)
您声明该方法将返回double
,这就是需要返回语句的原因。将返回类型更改为void
(如果您不需要返回的值)或添加如下语句:
public static double convertTemp(){
if((unit.equals("F"))||(unit.equals("f"))){
double c= (temp - 32) / 1.8;
JOptionPane.showMessageDialog(null,c+" Celsius"));
//return c here
return c;
}
else if((unit.equals("C"))||(unit.equals("c"))){
double f=((9.0 / 5.0) * temp) + 32.0;
JOptionPane.showMessageDialog(null,f+" Fahrenheit");
//
return f;
}
// return 0 - or something else - when neither f nor c where selected
return 0.0;
}