[問題] 關於foreach輸出的問題
小弟算是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
→
03/18 21:04, , 1F
03/18 21:04, 1F
→
03/18 21:07, , 2F
03/18 21:07, 2F
那個我的意思是 我想知道這題 是怎麼輸出B E D D F的
如果我輸出str2的話 會是 A ZERO ONE TWO THREE(這邊我大概能夠了解意思)
※ 編輯: SogeKing 來自: 1.168.218.229 (03/18 22:54)
推
03/19 00:43, , 3F
03/19 00:43, 3F
→
03/19 00:45, , 4F
03/19 00:45, 4F
我大概了解這個意思了 [4] << 這個就是ZERO的長度 [3]<< 這個就是 ONE的長度
以此類推 這樣看應該沒錯吧@@?
※ 編輯: SogeKing 來自: 1.168.218.229 (03/19 05:08)
推
03/19 10:21, , 5F
03/19 10:21, 5F
→
03/19 11:05, , 6F
03/19 11:05, 6F
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 3 篇):