2017-09-25 6 views
-2

は次のとおりです。スキャナーで入力配列を入力できませんでしたか?私が達成しようとしている何

  1. は、配列を作成し、ユーザの入力(スキャナ)とその長さを定義します。 ✓
  2. 配列をループして値を入力します。 ✓
  3. 長さを定義し、長さに従って値を入力したら、配列全体を印刷します。 X

私は3を達成できませんでした。誰かが私を助けることができますか?アレイを印刷するだけでいいです。

これは私のコードです:

package arrayinputoutput; 

import java.util.Scanner; 

public class ArrayInputOutput { 

    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 
     int x; 
     int[] test; 

     System.out.println("How long should the array be?"); 
     x = input.nextInt(); 

     for (int i = 0; i < x + 1; i++) { 
      input.nextLine(); 
      System.out.println("Please fill in position " + i + ":"); 
      i = input.nextInt(); 

     } 
     //System.out.println(test[]); 
    } 
} 
+0

あなたは配列を埋めるわけではありません!!各値を読み取るときには、各インデックスの配列を塗りつぶす必要があります。 –

+0

@RenatoAfonsoこれは本当の問題ではありません。このコードはコンパイルされません。 – progyammer

+0

@progyammerまず第一にそれはコンパイルしないと思いますか?ちょうどFINEをコンパイルします。 –

答えて

2
  • サイズを求めた後、ヨーヨーは、あなたがその配列myArray[i] = input.nextInt();のボックスに入力を保存する必要がサイズ
  • で、arrayを作成する必要がありますライン
  • をスキップするためのインデックスSTA sizeなくsize+1variables
  • 停止のための明示的な名前を使用してくださいこのような0

そうにRT:

int size; 
int[] myArray; 
System.out.println("How long should the array be?"); 
size = input.nextInt(); 
input.nextLine(); 
myArray= new int[size];      //<- create array 

for (int i = 0; i < size ; i++) {   // <- '<size' and '<size+1' 
    System.out.println("Please fill in position " + i + ":"); 
    myArray[i] = input.nextInt();   // <- store in a box of the array 
    input.nextLine(); 
} 

は、アレイを印刷するには、のようないくつかのオプション:

OR:

for (int i = 0; i < size ; i++) {   
    System.out.println("Value in position " + i + ":" + myArray[i]);  
} 
+0

私は5の配列の長さを入力すると、それは4だけ聞いてくるので、私はサイズ+1をしなければならない。それが理由です。 –

+0

@DenizYildiz確信していますが、配列の仕組みは0です。[Documentation](https://docs.oracle.com/javase/specs/jls/se8/html/jls-10.html#jls-10.4 )サイズ+ 1を設定した場合、OutOfBoundsExceptionが発生します – azro

0

System.out.println(Arrays.toString(test));

これを使って配列を印刷してみてください。うまくいきたいです。

関連する問題