2016-11-14 19 views
0

だから私は、現在ユーザが、その後華氏に、その後、単にユーザの入力になり、初期温度、その後、プログラムは摂氏にそれを計算しているが、入り、オブジェクトを使用してプログラムを書いていますケルビン。クラスには、二重引数として提供される初期温度を受け入れる単一コンストラクタもあります。この引数が< -273.15の場合は、-273.15に設定します。私は正しい軌道に乗っていると思ったが、それを編集したとき、私が望むことをやっていなかった。このコードでは温度変換

、出力は私に

を与える初期温度を入力してください:20
を摂氏で現在の温度がある:0.0
華氏で現在の温度は次のとおりです。32.0
現在の温度ケルビンで:273.15

これは正しくない...任意のヒント?

//blueprint 
public class TemperatureC{ 
    private double temperatureC; 

    public TemperatureC(){ 
     if(temperatureC<-273.15){ 
      temperatureC = -273.15;} 
     else{} 
    } 

    public void setC(double c){ 
     temperatureC = c; 
    } 
    public double getC(){return temperatureC;} 
    public double getF(){return (temperatureC * 1.8) + 32;} 
    public double getK(){return temperatureC + 273.15;} 
} 



//code 
import java.util.Scanner; 

public class TemperatureTester{ 
    public static void main(String[] args){ 

     TemperatureC temp = new TemperatureC(); 

     double initialTemperature; 
     double celsius=temp.getC(); 
     double fahrenheit=temp.getF(); 
     double kelvin=temp.getK(); 

     Scanner keyboard = new Scanner(System.in); 

     System.out.print("Please enter the initial temperature: "); 
     initialTemperature = keyboard.nextDouble(); 


     //TemperatureC temp = new TemperatureC(); 

     System.out.println("The current temperature in Celsius is: " + celsius); 
     System.out.println("The current temperature in Fahrenheit is: "+fahrenheit); 
     System.out.println("The current temperature in Kelvin is: "+kelvin);  
    } 
} 
+0

あなたは前ではなくinitialTemperature' 'の値を取得した後、' fahrenheit'と 'kelvin'、' celsius'を再割り当てする必要があります。 –

答えて

1

あなたがtemperature値を知る前に、あなたはcelsiusfahrenheit、およびkelvinの値を代入しています。あなたのテスターがよりinitialTemperatureの温度が設定された後ので操作が今行われているこの

public static void main(String[] args) { 
    TemperatureC temp = new TemperatureC(); 
    double initialTemperature; 
    Scanner keyboard = new Scanner(System.in); 
    initialTemperature = keyboard.nextDouble(); 
    temp.setC(initialTemperature); 

    System.out.println("The current temperature in Celsius is: " + temp.getC()); 
    System.out.println("The current temperature in Fahrenheit is: "+temp.getF()); 
    System.out.println("The current temperature in Kelvin is: "+temp.getK()); 
} 

に見えるようにしたいです。

+0

だから私はそれをしましたが、temp.setC(temp)を置くとエラーになりました。代わりに私はtemp.setC(initialTemperature)を入れました。それが働いた....が、ユーザが-273.15未満番号を入力したとき、それは.... -273.15に私はその部分を修正する方法を上の任意の提案を、それを設定していないのですか? – Angie

+0

@AngieあなたはsetC' 'にそれをプログラムすることができます。また、そのエラーを指摘してくれてありがとう。私はそれを修正します。 –