2017-10-20 10 views
0

問題が発生しましたが、数字を入力しようとすると2回発行されますか?だから私は(x)の数字をタイプし、それはスペースを空けて、別の番号を求めますか?私はちょうど1つを入力しても?スキャナの入力は2回必要です。一度だけ必要な場合

(よりよく理解するために、出力コードを参照してください)

ここでは私のコードです:

import java.util.Scanner; 

public class FahrenToCelcius { 
    private static Scanner sc; 

    public static void main(String[] args) { 
     double celsius, fahrenheit; 
     System.out.println("Enter your temperatures"); 
     sc = new Scanner(System.in); 
     int[] temperatures = new int[5]; 
     for(int i = 0; i < 5; ++i) { 
      temperatures[i] = sc.nextInt(); 

      fahrenheit = sc.nextDouble(); 
      celsius =(fahrenheit-32)*(0.5556); 
      System.out.println("Temperature in Celsius:"+celsius); 

     }  
    } 
} 

出力:

Enter your temperatures 
100 
100 
Temperature in Celsius:37.7808 
100 
100 
Temperature in Celsius:37.7808 
100 
100 
Temperature in Celsius:37.7808 

私は、ユーザーがあまりにも一度入力にそれを持って欲しいです。助けて?

+1

.. ONCEスキャナを読みますか?値を何も設定しないでください。 – AxelH

+0

あなたはスキャナを2度読んでいませんか?一度だけtemperature [i] = sc.nextInt(); fahrenheit = sc.nextDouble();の別のもの –

+0

'/ /温度[i] = sc.nextInt();' - あなたのために固定されています –

答えて

2

あなたは本当に配列内の値を保持したい場合ので、あなたがそれに挿入声明...

を削除することができ、配列int[] temperaturesを使用していません。単にDouble[] temperaturesを使用してスキャナをお読みください。あなたは一つだけ入力したい場合は

... 
fahrenheit = sc.nextDouble(); 
temperatures[i] = fahrenheit; 
... 

は一言で言えば、あなただけは、[i]が ``温度でやっている

+0

本当にありがとうございました。 –

関連する問題