2017-09-14 5 views
0

スキャナ入力で作業する場合、var .. argsをとして使用できます。sc.nextInt() ??例えば 出力は、ArrayIndexOutOfBoundsExceptionた スキャナ入力クラスを使用して可変数の引数を使用して作業する

import java.util.Scanner; 
class Sample 
{ 
public static void run(int... args){ 
    System.out.println(args[1]); 
    } 
public static void main(String args[]) 
{ 
    Scanner sc = new Scanner(System.in); 
    System.out.println("please enter values: "); 
    int values = sc.nextInt(); 
    run(values); 
} 

} 

(コードの下)..:1いずれかが、これについて説明することができます...

+2

に格納されているので、1つの整数を渡し、配列の2番目の要素にアクセスしようとします。配列インデックスはJavaで0から始まります。 –

+0

私の答えがあなたを助けることができればそれを受け入れることができます。 –

答えて

1

あなたの配列サイズが1で2番目の値にアクセスしようとすると、そのコードの下に使用します。私はargs[1]からargs[0]に変更しました。

ArrayIndexOutOfBoundsException整数配列だけでなく、すべてのタイプの配列に対して、配列に存在しないインデックス値にアクセスしようとすると発生します。

import java.util.Scanner; 
class Sample 
{ 
public static void run(int... args){ 
    System.out.println(args[0]); 
    } 
public static void main(String args[]) 
{ 
    Scanner sc = new Scanner(System.in); 
    System.out.println("please enter values: "); 
    int values = sc.nextInt(); 
    run(values); 
} 

} 
+0

しかし、実行時に1,2,3,4のような値の配列を入力した場合、args [1]は動作していません。plzはそのことを明確にします – Anju

+0

何のエラーが発生していますか? –

3

values唯一の有効なインデックスが0(アレイはゼロベースのエンティティである)

0

使用引数であることを意味するので、argsの長さが1である、ただ一つの変数[0]の代わりに引数を[1 ]あなたの値が

関連する問題