foreach回圈用于列舉出集合中所有的元素,使用foreach可以迭代陣列或者一個集合物件。程>
??每一次回圈時,從集合中取出一個新的元素值,放到只讀變數中去,如果括號中的整個運算式回傳值為true,foreach塊中的陳述句就能執行。一旦集合中的元素都應經被訪問到,整個運算式的值為false,控制流程就轉入到foreach塊后面的執行陳述句。
<遍歷陣列>
class Program { static void Main(string[] args) { int[] array = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; foreach (int i in array) { Console.WriteLine(i); } } } 它實作了對陣列元素的遍歷,遍歷之前需要指定元素的型別
12345678910111213
//結果 1 2 3 4 5 6 7 8 9
12345678910
<遍歷字串>
class Program { static void Main(string[] args) { string test = "Hello,world!"; foreach (char i in test) { Console.WriteLine(i); } } }
1234567891011
//結果 H e l l o , w o r l d !
12345678910111213
將i的型別char換成int
//結果 72 101 108 108 111 44 119 111 114 108 100 33 輸出的結果是字符所對應的ASCII碼值,說明這里進行了資料型別的隱式轉換
1234567891011121314
<注釋>
變數名用來存放該集合中的每個元素ArrayList或List是一個類,它可以讓foreach去遍歷
<舉例>
class Program { static void Main(string[] args) { int count; Console.WriteLine("輸入要登記的學生數"); count = int.Parse(Console.ReadLine()); string[] names = new string[count];//宣告一個存放姓名的字串陣列,其長度等于提供的學生人數 for (int i = 0; i < names.Length; i++)//接受姓名 { Console.WriteLine("請輸入第{0}個學生的姓名", i + 1); names[i] = Console.ReadLine(); } Console.WriteLine("已登記的學生如下"); foreach (string name in names)//顯示姓名 { Console.WriteLine("{0}", name); } Console.ReadKey(); } }
123456789101112131415161718192021
<注意>:
foreach回圈是只讀的,不能遍歷修改資料foreach回圈是只進的,并且是一條一潭訓圈的
uj5u.com熱心網友回復:
好的
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
沒有明白你要做什么。uj5u.com熱心網友回復:
foreach內部每遍歷一個會判斷一個標識,這個標識用于記錄集合是否被移除或者添加資料,如果移除就會報錯。不同for回圈,它內部使用陣列索引來對元素操作,即使進行remove了項也不會出錯。uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
#4正解,foreach有一個內部標識的version匹配版本。轉載請註明出處,本文鏈接:https://www.uj5u.com/net/130329.html
標籤:非技術區
