2017-01-26 5 views
0

コード内にいくつかのことが必要です。私はそれを8時間まっすぐに見ていて、それを理解することはできません。私はユーザー入力が-459と212の間である必要があります。範囲外の整数の場合は、行を印刷して再入力し、変換して変換します。今は、それらのいずれかをしていないだけで、コードを通過しています。ブール値を使用するはずですか?いい考えはありません。Javaユーザー入力は範囲内になければなりません/ 20行で10の整数を生成

第2の問題は、変換後に華氏と摂氏がプリントアウトされるときです。私は、各温度に10を加えて20行を追加する必要があります。これはカウントですか?主な助けが必要でした!

import java.text.DecimalFormat; 
import java.util.Scanner; 

public class Temperatures { 

public static void main(String[] args) { 

    double Fahrenheit; 
    double Celsius; 

     Scanner scan = new Scanner(System.in); 

     System.out.print("Enter temperature in Fahrenheit: "); 
     Fahrenheit = scan.nextInt(); 

     if(Fahrenheit >= -459 && Fahrenheit <= 212) 


      System.out.println("Please enter a number between -459 and 212 degrees:"); 
      Fahrenheit = scan.nextInt(); 

    Celsius = ((Fahrenheit -32)*5)/9; 

    DecimalFormat fmt = new DecimalFormat("#.##"); 

    System.out.print("Fahrenheit: " + Fahrenheit + "  Celsius: " + fmt.format(Celsius)); 


} 
} 
+0

今、華氏と摂氏変数が初期化されていません。 – Becky

答えて

1

あなたif条件が反転している:私はこれまで持っているもの

。次のnextInt()ifブロックにありません。あなたは、有効な入力を取得するまで、それは繰り返したい場合は、whileループにそれを有効にする必要があります。

while(Fahrenheit < -459 || Fahrenheit > 212) { 
    System.out.println("Please enter a number between -459 and 212 degrees:"); 
    Fahrenheit = scan.nextInt(); 
} 

私は本当に2番目の質問を理解していませんでした。

+0

2番目の部分は華氏のユーザー入力が摂氏に変換されており、両方の温度が同じ行に出力されています。次に、10度単位で温度を表示するように指示します。その後、20行で停止します。 – Becky

関連する問題