2017-09-14 206 views
0

參數變量數量的工作雖然與掃描儀輸入的工作,我們可以使用VAR。與sc.nextInt() ARGS? 例如..(下面的代碼)通過,利用掃描儀輸入類

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且試圖訪問第二值,以便使用以下代碼。我已經從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]是不是working..can你PLZ澄清 – Anju

+0

你做了什麼錯誤? –

3

values僅僅是一個變量,所以args的長度爲1,這意味着唯一有效的索引是0(陣列從零開始實體)

0

使用ARGS [0]代替ARGS [1 ]因爲你的價值存儲在