看板 java 關於我們 聯絡資訊
小弟算是Java的初學者(這幾天才開始碰) 我在書上看到關於foreach與陣列的範例 實在是看不太懂 而書上的解說又很快帶過 所以想來板上來問各位大大 (書上只有教 怎麼利用這個語法輸出陣列) 範例如下: public class app1_1 { public static void main(String args[]) { String[][] exam={{"A","B","C","D","E","F","G"}, {"ZERO"},{"ONE"},{"TWO"},{"THREE"}}; A:for(String[] str1:exam){ B:for(String str2:str1){ System.out.println(exam[0][str2.length()]); continue A; } break A; } } } 我用程式輸出的結果是 B E D D F (應該沒錯) 我所知道的[str2.length()]這邊應該是取得str2的長度 然後exam[0]應該是要取得 {"A","B","C","D","E","F","G"} 這個陣列裡的這些字 exam[0][str2的長度] 來抓exam裡面的值 可是不知道str2的長度是怎麼變化的 (依照結果來看str2的長度分別是1,4,3,3,5) 主要就是這for迴圈之間整個流程不太理解... 所以想請問一下各位大大這之間的流程...為什麼會造成輸出會是B E D D F 這樣啊? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.168.218.229
asilzheng:你要印的應該是println(str2); 03/18 21:04
asilzheng:應該說 你把str2也印出來就會知道怎麼一回事了 03/18 21:07
那個我的意思是 我想知道這題 是怎麼輸出B E D D F的 如果我輸出str2的話 會是 A ZERO ONE TWO THREE(這邊我大概能夠了解意思) ※ 編輯: SogeKing 來自: 1.168.218.229 (03/18 22:54)
LPH66:所以分別長度是 1 4 3 3 5 就分別取了 [1] [4] [3] [3] [5] 03/19 00:43
LPH66:記得陣列從 [0] 起算 所以就分別拿到 B E D D F 了 03/19 00:45
我大概了解這個意思了 [4] << 這個就是ZERO的長度 [3]<< 這個就是 ONE的長度 以此類推 這樣看應該沒錯吧@@? ※ 編輯: SogeKing 來自: 1.168.218.229 (03/19 05:08)
risker760915:建議你還是先把二維陣列搞清楚一點比較好... 03/19 10:21
risker760915:應該是說"ZERO"的長度是4才取[0][4]這個值... 03/19 11:05