在C#和Java語(yǔ)言中for和foreach的區(qū)別詳解
for循環(huán)和foreach循環(huán)的區(qū)別
- 首先在這里聲明一點(diǎn),C#和Java這兩種語(yǔ)言很相似,尤其是初學(xué)的數(shù)據(jù)類(lèi)型那一部分,所以這里寫(xiě)的for和foreach的區(qū)別在C#和Java中都適用。
- 我會(huì)在下面分別列出兩種語(yǔ)言的for和foreach分別循環(huán)打印一個(gè)數(shù)組,大家可以看看區(qū)別
話不多說(shuō),直接上代碼:
//c#
//先創(chuàng)建一個(gè)數(shù)組
int[] arr = new int[3] {99, 11, 22};
//利用for循環(huán)打印(可以創(chuàng)建一個(gè)變量 i;判斷這個(gè)i是否小于數(shù)組的長(zhǎng)度;每次循環(huán)i自增1)
// (并且中間這個(gè)值是一個(gè)布爾值)
for(int i = 0; i < arr.Length; i++)
{
//這里是循環(huán)體,我們讓每次循環(huán)都輸出數(shù)組的第i個(gè)數(shù)。
Console.WriteLine(arr[i]);
}
//foreach的括號(hào)里有四個(gè)變量(數(shù)據(jù)類(lèi)型 變量名 in 數(shù)組名)
foreach(int name in arr)
{
Console.Write(name + ",");
}
//Write輸出完成后不會(huì)換行,writeLine則會(huì)換行。
//加這個(gè)逗號(hào)是為了輸出時(shí)把兩個(gè)數(shù)字區(qū)分開(kāi)
//可以在最后加一行等待讀取,讓控制臺(tái)不要直接關(guān)閉。
Console.ReadKey();
———————以上是C#的循環(huán)輸出遍歷數(shù)組,下面是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輸出完成后不會(huì)換行,println則會(huì)換行
//java比C#的這點(diǎn)就很方便,不用再最后一行加個(gè)等待輸入來(lái)看最后結(jié)果。
//不過(guò)在vs2019中好像已經(jīng)更新了,不會(huì)自動(dòng)關(guān)閉,小伙伴們可以自己試試。
Java語(yǔ)言中和C#所需要注意的重點(diǎn)是一樣的,就在下面,只不過(guò)輸出有所區(qū)別。
看到這里很多新手可能都會(huì)覺(jué)得for循環(huán)簡(jiǎn)單一些,其實(shí)并非這樣,之所以會(huì)有人這么認(rèn)為是因?yàn)槌鯇W(xué)者已經(jīng)習(xí)慣了一種循環(huán),突然轉(zhuǎn)變一種不太習(xí)慣,并且不能理解括號(hào)中四個(gè)值的含義,所以寧可用for
針對(duì)這一問(wèn)題可以這么理解
for和foreach都是循環(huán),新手可以認(rèn)為for包含foreach,因?yàn)閒oreach只適用于循環(huán)數(shù)組。foreach并不是比較難,而是為了在遍歷數(shù)組時(shí)更加的簡(jiǎn)單,就單純的看遍歷數(shù)組確實(shí)foreach更加簡(jiǎn)單一點(diǎn)。for循環(huán)確實(shí)是功能多一些,在很多地方都可以用得到,這一點(diǎn)foreach是做不到的,所以由此可見(jiàn),foreach只適合遍歷數(shù)組。
這里有表格可以幫助理解:
| for | foreach | |
|---|---|---|
| 適用范圍 | 任何可以循環(huán)的地方 | 僅在遍歷數(shù)組時(shí) |
| 難 度 | ⭐⭐⭐ | ⭐ |
| 變量個(gè)數(shù) | 3個(gè) | 無(wú) |
| 要寫(xiě)的值 | (創(chuàng)建變量;判斷是否繼續(xù)循環(huán);自增) | (數(shù)據(jù)類(lèi)型 變量名 in 數(shù)組名) |
| 值的變化 | 三個(gè)變量都需要根據(jù)不同的情況做出不同的調(diào)整 | 只有數(shù)據(jù)類(lèi)型需要注意,一般為int(double)或者var |
其中foreach中的4個(gè)值很簡(jiǎn)單,希望對(duì)大家有所幫助
for循環(huán)的三個(gè)變量都是須要根據(jù)不同情況而有所改變的,foreach中的值雖說(shuō)有4個(gè),但那不是變量,基本都是固定的,只需要填寫(xiě)對(duì)應(yīng)的數(shù)據(jù)類(lèi)型,請(qǐng)外起一個(gè)名字,in是固定不變的,最后是要輸出的數(shù)組名,另外起的名字是什么就在循環(huán)體中輸出這個(gè)名字。千萬(wàn)不要直接輸出數(shù)組名!
到此這篇關(guān)于在C#和Java語(yǔ)言中for和foreach的區(qū)別詳解的文章就介紹到這了,更多相關(guān)C#和Java語(yǔ)言中for和foreach的區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
軟件測(cè)試學(xué)到什么程度,可以開(kāi)始找工作
其實(shí)學(xué)習(xí)軟件測(cè)試沒(méi)有大家想象中的那么難,就算是零基礎(chǔ)也不用害怕,學(xué)習(xí)就是一個(gè)從不熟悉到熟悉的過(guò)程,那么軟件測(cè)試學(xué)到什么程度,可以開(kāi)始找工作?下面就來(lái)介紹一下2007-02-02
高性能高可用高并發(fā)架構(gòu)和系統(tǒng)設(shè)計(jì)思路大綱
高性能架構(gòu)和系統(tǒng)設(shè)計(jì)要求高并發(fā)高性能,高性能更多的是先從編碼角度、架構(gòu)使用角度去讓我們的單機(jī)(單實(shí)例)有更好的性能,然后再?gòu)恼麄€(gè)系統(tǒng)層面來(lái)?yè)碛懈玫男阅埽桓卟l(fā)則直接是全局角度來(lái)讓我們的系統(tǒng)在全鏈路下都能夠抗住更多的并發(fā)請(qǐng)求2023-08-08
ChatGPT體驗(yàn)輔助寫(xiě)代碼功能實(shí)測(cè)(附編程測(cè)試)
ChatGPT最近霸屏了,咱們也來(lái)玩玩,下面這篇文章主要給大家介紹使用ChatGPT輔助寫(xiě)代碼的體驗(yàn),需要的朋友可以參考下2023-02-02
idea自動(dòng)生成UML圖的實(shí)現(xiàn)圖文教程
UML是一種很重要的分析源碼工具,本文主要介紹了idea自動(dòng)生成UML圖的實(shí)現(xiàn)圖文教程,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01
基數(shù)排序算法的原理與實(shí)現(xiàn)詳解(Java/Go/Python/JS/C)
基數(shù)排序(RadixSort)是一種非比較型整數(shù)排序算法,其原理是將整數(shù)按位數(shù)切割成不同的數(shù)字,然后按每個(gè)位數(shù)分別比較。本文將利用Java/Go/Python/JS/C不同語(yǔ)言實(shí)現(xiàn)基數(shù)排序算法,感興趣的可以了解一下2023-03-03
盤(pán)點(diǎn)網(wǎng)絡(luò)編程必須要知道的基礎(chǔ)知識(shí)
這篇文章主要介紹了盤(pán)點(diǎn)網(wǎng)絡(luò)編程必須要知道的基礎(chǔ)知識(shí),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2020-07-07
IntelliJ IDEA 2020最新注冊(cè)碼(親測(cè)有效,可激活至 2089 年
這篇文章主要介紹了IntelliJ IDEA 2020最新注冊(cè)碼,親測(cè)有效,可激活至 2089 年,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05

