2017-09-14 1 views
0

스캐너 입력으로 작업하는 동안 var .. args를 sc.nextInt()와 함께 사용할 수 있습니까? ?? 예를 들어 ..스캐너 입력 클래스를 사용하여 다양한 수의 인수로 작업

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); 
} 

} 

출력이는 ArrayIndexOutOfBoundsException이었다 (코드 아래) : ... 하나가 이것에 대해 설명 할 수있는 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 정도로 args의 길이 만 유효 인덱스 0 (배열은 0부터 엔티티)

0

사용 인수 [0] 대신 인수 [1 수단 (1)이며, 하나 개의 변수 ]

관련 문제