缺少退货声明

时间:2012-03-19 14:59:33

标签: java

我的代码中出现以下错误: - 收回退货声明 -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");

}
}
}

7 个答案:

答案 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;
}