[爆卦]foreach用法java是什麼?優點缺點精華區懶人包

為什麼這篇foreach用法java鄉民發文收入到精華區:因為在foreach用法java這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者LaPass (LaPass)看板java標題Re: [問題] 關於foreach輸出的問題時間...


String[]
等於一個陣列,裡面裝的是String
┌String
String[]┼String
├String
└.....



String[][]
等於一個陣列,陣列裡面裝的是String[]

┌String[]
String[][]┼String[]
├String[]
└.....

以此類推



那,foreach這個東西
只要記得,他是把陣列中的東西全部抓出來就好

String[] a = {"a","b","c"}
for(String b:a) 把String[] //a中的字串一個個讀出來
{ //對每個字串進行操作(命名為b)
System.out.println(b);
}



當然也可以套用到String[][]上,就是你的那個範例




for(String[] str1:exam) //從String[][] exam中抓出String[]
{ //並命名為str1
for(String str2:str1) //再從String[] str1抓出每個字串,命名str2
{
System.out.println(exam[0][str2.length()]);
//↑這種用不好,用foreach再用索引的話,會提高犯錯率
//直接印str2比較不容易出錯
System.out.println(str2);
}
}



再來,break跟continue
這用法要去看迴圈那一部分
先搞懂foreach再去看會比較好,把兩種東西混在一起看只會提高學習的混亂程度
如果你覺得範例的迴圈亂跳的話,十之八九是因為那個break跟continue的關係



到底是哪本書丟這種混和用法當範例啊.....



補充一下
如果覺得程式跑得很奇怪的話
大部分的ide都有Step by Step的執行方式
可以用那種方式一步步執行,就能知道程式怎麼跑的



※ 引述《SogeKing (狙擊王XD)》之銘言:
: 小弟算是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: 61.59.16.65
※ 編輯: LaPass 來自: 61.59.16.65 (03/19 13:03)
cyberwizard:同意,用來當作解說觀念的範例爛透了 03/19 13:18
eieio:推詳細的解釋,再推「到底是哪本書丟這種混和用法當範例啊」 03/19 13:20
SogeKing:感謝各位大大的解說 這個範例算是比較難的 03/19 17:04
gameking:大推 初學者不該很多觀念混著學 尤其是亂跳的迴圈= = 03/27 14:05

你可能也想看看

搜尋相關網站