2017-03-13 17 views
1

forループの各行の後にどのように入力を得ることができるのだろうかと思っていました。複数の値の入力にforループを使用する

System.out.println("How many days?"); 
int days = keyboard.nextInt(); 

int A = 0; 
int B = 0; 
int C = 0; 

for(int i = 1; i < days; ++i(
{ 
    System.out.println("Enter an input for day " +i + "of A B C:"); 
} 

それは良いです日の値に応じ

Enter an input for day 1 of A B C: 
Enter an input for day 2 of A B C: 

を出力します。しかし、一度にすべてを印刷するのではなく、毎日の後にA B Cの値を入力する必要があります。私はこれをどうやって進めることができますか?

+1

ループ内でそのコードを移動しようとしましたか? – azurefrog

+0

ちょうどヒントとして、変数の宣言を次のように単純化することができます: 'int A、B、C;'。それらのデフォルト値は0になります。 – petehallw

+0

@petehallw:クラスのJavaフィールド(および配列の要素)は型に応じてデフォルトでゼロ/偽/ヌルに初期化されますが、ローカル変数は初期化されません。これらの変数が最初に読み込まれることなく割り当てられていて、Jeromeの答えで意味があり、実行されたとしても、初期化の不足は問題ではありません。 –

答えて

0

Scanner keyboard = new Scanner(System.in); 

上記のコードのどこかにあります。

System.out.println("How many days?"); 
    int days = keyboard.nextInt(); 


int A = 0; 
int B = 0; 
int C = 0; 

for(int i = 1; i < days; ++i) 
{ 
    System.out.println("Enter an input for day " +i + "of A:"); 
    int A = keyboard.nextInt(); 
} 

スキャナコードをforループ内に移動して入力します。文脈中にA、B、Cが何であるか分からない。しかし、すべてのn日間A、B、Cが必要な場合は、BとCのforループで2行を繰り返すだけです。

+0

うわー、私はint = keyboard.nextintをforループに動かすことを考えなかったことをありがとう。 – Survivorr

1

使用し、あなたのScanner keyboard

Scanner keyboard = new Scanner(System.in); 

System.out.println("How many days?"); 
int days = keyboard.nextInt(); 

int A = 0; 
int B = 0; 
int C = 0; 

for(int i = 1; i < days; ++i(
{ 
    System.out.println("Enter an input for day " +i + "of A:"); 
    A = keyboard.nextInt(); 
    System.out.println("Enter an input for day " +i + "of B:"); 
    B = keyboard.nextInt(); 
    System.out.println("Enter an input for day " +i + "of C:"); 
    C = keyboard.nextInt(); 
} 

あなたがString abcInput = keyboard.nextLine();を使用して、進むことができます1回の呼び出しで入力A、BおよびCにしたい場合はString:やった私はあなたをguesingい

String abcInput = keyboard.nextLine(); 
String[] split = abcInput.split(" "); 
if(split.length == 3){ 
    //3 Values found so assign it to A,B and C 
    A = Integer.parseInt(split[0]);    
    B = Integer.parseInt(split[1]);    
    C = Integer.parseInt(split[2]);    
}else{ 
    System.out.println("Not enough input"); 
} 
関連する問題