在C#和Java語言中for和foreach的區別

2020-09-25 11:00:30

for迴圈和foreach迴圈的區別

  • 首先在這裡宣告一點,C#和Java這兩種語言很相似,尤其是初學的資料型別那一部分,所以這裡寫的for和foreach的區別在C#和Java中都適用。
  • 我會在下面分別列出兩種語言的for和foreach分別迴圈列印一個陣列,大家可以看看區別

話不多說,直接上程式碼:

//c#
//先建立一個陣列
int[] arr = new int[3] {99, 11, 22};
//利用for迴圈列印(可以建立一個變數 i;判斷這個i是否小於陣列的長度;每次迴圈i自增1)
//									(並且中間這個值是一個布林值)
for(int i = 0; i < arr.Length; i++)
{
//這裡是迴圈體,我們讓每次迴圈都輸出陣列的第i個數。
Console.WriteLine(arr[i]);
}

//foreach的括號裡有四個變數(資料型別 變數名 in 陣列名)
foreach(int name in arr)
{
Console.Write(name + ",");
}
//Write輸出完成後不會換行,writeLine則會換行。
//加這個逗號是為了輸出時把兩個數位區分開

//可以在最後加一行等待讀取,讓控制檯不要直接關閉。
Console.ReadKey();

————————以上是C#的迴圈輸出遍歷陣列,下面是Java的 ————————

//Java
int[] arr = new int[3] {88, 66, 55};
for(int i = 0; i < arr.Length; i++)
{
System.out.println(arr[i]);
}

foreach(int name in arr)
{
System.out.print(name + ",");
}
//print輸出完成後不會換行,println則會換行

//java比C#的這點就很方便,不用再最後一行加個等待輸入來看最後結果。
//不過在vs2019中好像已經更新了,不會自動關閉,小夥伴們可以自己試試。

Java語言中和C#所需要注意的重點是一樣的,就在下面,只不過輸出有所區別。

看到這裡很多新手可能都會覺得for迴圈簡單一些,其實並非這樣,之所以會有人這麼認為是因為初學者已經習慣了一種迴圈,突然轉變一種不太習慣,並且不能理解括號中四個值的含義,所以寧可用for

針對這一問題可以這麼理解

  1. for和foreach都是迴圈,新手可以認為for包含foreach,因為foreach只適用於迴圈陣列。
  2. foreach並不是比較難,而是為了在遍歷陣列時更加的簡單,就單純的看遍歷陣列確實foreach更加簡單一點。
  3. for迴圈確實是功能多一些,在很多地方都可以用得到,這一點foreach是做不到的,所以由此可見,foreach只適合遍歷陣列。

這裡有表格可以幫助理解:

forforeach
適用範圍任何可以迴圈的地方僅在遍歷陣列時
難 度⭐⭐⭐
變數個數3個
要寫的值(建立變數;判斷是否繼續迴圈;自增)(資料型別 變數名 in 陣列名)
值的變化三個變數都需要根據不同的情況做出不同的調整只有資料型別需要注意,一般為int(double)或者var

其中foreach中的4個值很簡單,希望對大家有所幫助

for迴圈的三個變數都是須要根據不同情況而有所改變的,foreach中的值雖說有4個,但那不是變數,基本都是固定的,只需要填寫對應的資料型別,請外起一個名字,in是固定不變的,最後是要輸出的陣列名,另外起的名字是什麼就在迴圈體中輸出這個名字。千萬不要直接輸出陣列名!

感謝大家的學習觀看,請多多指教哦~~~