2017-05-15 112 views
-1

我正在尝试做温度转换,并且我知道我需要在main中调用convertTemp,但我只是不知道自己在做什么。有人可以看看这个并帮助我吗?如何调用另一个方法

import java.util.Scanner; 

public class TemperatureConverter { 

    public static void convertTemp() { 
     Scanner keyboard = new Scanner(System.in); 
     double temperature; 
     String temperatureScale = " "; 

    if (temperatureScale.equals("f")) 
    {  
    // code that converts from Fahrenheit to Celsius 
     temperature = (5/9)*(keyboard.nextDouble() - 32); 
    // and prints the result to the screen 
     System.out.println("The temperature is " + temperature + "degrees celsius"); 
    } 
     // 
    else if (temperatureScale.equals("c")) 
    {  
    // code that converts from Celsius to Fahrenheit  
     temperature = 32.0 +(keyboard.nextDouble() * 1.8); 
     System.out.println("The temperature is " + temperature + "degrees fahrenheit"); 
    // and prints the result to the screen 
    } 
    else 
    {  
    // code that outputs a message indicating that an incorrect 
     System.out.println("Error! A valid temperature was not chosen!"); 
    // option was selected 
    } 
    } 

    public static void main(String[] args) { 
    Scanner keyboard = new Scanner(System.in); 
    System.out.println("What temeprature number are you trying to find out?"); 
    double keyboardInput = keyboard.nextDouble(); 


    System.out.println("Type f for Fahrenheit or c for Celsius."); 
    String keyboardTempLetter = keyboard.next(); 

    } 

    } 
//} 
+2

对于初学者来说:'temperatureScale'应该是一个参数'convertTemp',从'main'传入。 –

+0

好吧,“应该”是指它会改善代码,而不是它需要执行。 – markspace

+0

我同意@LouisWasserman:I/O不应该成为此方法的一部分。它应该做一件事:将温度从一种尺度转换为另一种尺度。 – duffymo

回答

0

您需要将用户输入发送到convertTemp方法,以便方法检查它,然后返回结果或像您一样打印结果。

问题是你初始化temperatureScale温度在你的方法通过添加

double temperature; 
`String temperatureScale = " "; ` 

因此该方法用它们来代替用户插入的。

问题二convertTemp方法不接收userinput

convertTemp(没有什么RECIVED该处)。

第三个问题,你甚至不派从主

输入所以,首先你的方法应该有:

convertTemp(String temperatureScale,double temperature) 

然后就像我说的上面还删除删除temperatureScale的初始化和温度

` Scanner keyboard = new Scanner(System.in);` 

从convertTemp因为你在主

初始化它10

最后调用的方法在你的主要方法是这样的: -

convertTemp(keyboardInputkeyboardInput,keyboardTempLetter); 
+0

非常感谢!这极大地帮助了我! – jj9922

0

我会建议,而不是调用在convertTemp方法扫描仪,通过字符或字符串和数字作为参数。那么你就只需要调用函数在你的主是这样的:

convertTemp(double keyboardInput, String keyboardTempLetter); 
+0

谢谢你的帮助!这真的帮助我了! – jj9922

相关问题