2017-06-05 345 views
-4

我想插入數據到multidementional數組,但'for循環'裏面for循環(內部'for循環')不運行(當我運行代碼內部循環不runnig唯一其他'for循環')你可以清楚地看到,結果我附加了這個詭計。for循環裏面for循環

一些代碼:

for(int s=0;s<=y;s++){ //y mean number of arrays, user can input any number for y in here y>=2 
    int w=s+1; 
    System.out.println("number of data for array"+" "+w+':'); 
    int night[][]=new int[s][x.nextInt()]; 
    for(int counter=0;counter<night.length;counter++){ 
     int m=counter+1; 
     System.out.println("insert the number"+m+":"); 
     night[s][counter]=x.nextInt(); 

    } 
} 

我仍然在學習Java請你告訴我,爲什麼這不是工作

這是結果,當我運行該代碼

how much Arrays: 
4 
number of data for array 1: 
6 
number of data for array 2: 
7 
insert the number1: 
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1 
    at practice.Multi_array_data_input.main(Multi_array_data_input.java:42) 
+0

*「不工作」*不是一個適當的問題描述,究竟是什麼不工作? – luk2302

+0

預期結果在哪裏? – Shinchan

+0

您能否詳細說明「不工作」部分? ***它是如何***「不工作」?你有構建錯誤嗎?運行時出現異常?意外的結果?請花一些時間[閱讀如何提出好問題](http://stackoverflow.com/help/how-to-ask),並學習如何創建[最小,完整和可驗證示例](http:/ /stackoverflow.com/help/mcve)。 –

回答

0

的問題是,你調用一個不存在的數組中的索引,因爲Java和JavaScript中的數組是基於零的。當您使用int[] array = new int[3]定義數組時,這是否意味着索引0, 1, 2可用。索引3不是數組的一部分。所以爲了解決這個問題,當你調用你的夜間數組時,你必須將變量s最小化爲1。

for(int s=0;s<=y;s++){ // y mean number of arrays, user can input any number for y in here y>=2 
    int w=s+1; 
    System.out.println("number of data for array "+w+':'); 
    int night[][]=new int[s][x.nextInt()]; 
    for(int counter=0;counter<night.length;counter++){ 
     int m=counter+1; 
     System.out.println("insert the number "+m+":"); 
     night[s - 1][counter]=x.nextInt(); 
    } 
} 
+0

謝謝...............很多................: ) –