作者SogeKing (狙击王XD)
看板java
标题[问题] 关於foreach输出的问题
时间Sun Mar 18 20:00:35 2012
小弟算是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
1F:→ asilzheng:你要印的应该是println(str2); 03/18 21:04
2F:→ 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)
3F:推 LPH66:所以分别长度是 1 4 3 3 5 就分别取了 [1] [4] [3] [3] [5] 03/19 00:43
4F:→ LPH66:记得阵列从 [0] 起算 所以就分别拿到 B E D D F 了 03/19 00:45
我大概了解这个意思了 [4] << 这个就是ZERO的长度 [3]<< 这个就是 ONE的长度
以此类推 这样看应该没错吧@@?
※ 编辑: SogeKing 来自: 1.168.218.229 (03/19 05:08)
5F:推 risker760915:建议你还是先把二维阵列搞清楚一点比较好... 03/19 10:21
6F:→ risker760915:应该是说"ZERO"的长度是4才取[0][4]这个值... 03/19 11:05