C# 和Java的foreach的不同用法

來源:互聯網
上載者:User

標籤:

  迴圈語句為苦逼的程式猿們提供了很大的便利,有while、do...while、for和 foreach。而且foreach語句很簡潔,但是它的優點不僅僅在於此,它的效率也是最高的。

  作為兩個開發語言,用法當然有所不同。下面就分別說下各自的用法。

C# foreach用法:

  

foreach(type objName in collection/Array)

  這段語句會逐一檢查數組中的所儲存的變數值,並且一一將其取出,其中的type是你所要讀取的數組對象將要儲存在objName變數的資料類型,而objName是定義了一個type類型的變數名,代表每一次從集合和數組(collection/Array)中取得的元素,collection/Array則是所要存取的數組對象。用這種方法只需寫一個foreach就可以遍曆出除交錯數組以外的所有維數的數組。
註:objName的資料類型type必須與collection/Array對象的類型相同或比它大

下面我用foreach迴圈一次性遍曆a數組:

int[,,] a = new int[2, 2, 2] { {{ 1, 2 }, { 3,4}},{{ 5, 6 }, { 7,8}} };//定義一個2行2列2縱深的3維數組a                       foreach(int i in a){     Console .WriteLine (i);                       }

輸出結果就是1 2 3 4 5 6 7 8。

下面是遍曆一個集合:

List<string> names = new List<string>();//執行個體化一個集合names.Add("張三");names.Add("李四");names.Add("王五");foreach (string name in names){    Console.WriteLine("{0}", name);}

輸出結果就是 張三  李四  王五。

Java foreach用法:

 

for(type variableName : array|connection){     //variable自動迭代訪問每一個元素} 

 

  這段語句跟C# 的foreach文法大致相同,只不過“in”變成了“:”,這裡就不多做解釋了。用法大致與C#相同,不同的是對於多維陣列的遍曆,下面看用法。

遍曆集合:

//建立List並添加元素List<String> list = new ArrayList<String>();list.add("1");list.add("3");list.add("4");//利用froeach語句輸出集合元素for (String x : list) {    System.out.println(x);} 

輸出結果就不說了

遍曆數組:

一維數組:

//定義並初始化一個數組   int arr[] = {2, 3, 1};  
//利用foreach語句輸出數組元素for (int x : arr) { System.out.println(x); //逐個輸出數組元素的值 }

二維數組:

//定義並初始化一個數組 int arr2[][] = {{4, 3}, {1, 2}};   //利用foreach語句輸出數組元素for (int x[] : arr2) {       for (int e : x) {           System.out.println(e); //逐個輸出數組元素的值        }   }     

三維數組:

//定義並初始化一個數組int arr[][][] = {       {{1, 2}, {3, 4}},       {{5, 6}, {7, 8}}   };    //利用foreach語句輸出數組元素for (int[][] a2 : arr) {       for (int[] a1 : a2) {           for (int x : a1) {               System.out.println(x);   //逐個輸出數組元素的值        }          }   }   

若是n維數組,依次類推。

注意:通過上面的例子可以發現,foreach僅僅老老實實地遍曆數組或者集合一遍,如果要引用數組或者集合的索引,則foreach語句無法做到。所以不適合用於增加刪除和使用下標等複雜的操作。foreach語句是for語句特殊情況下的增強版本,簡化了編程,提高了代碼的可讀性和安全性(不用怕數組越界)。相對老的for語句來說是個很好的補充。提倡能用foreach的地方就不要再用for了。在用到對集合或者數組索引的情況下,foreach顯得力不從心,這個時候是用for語句的時候了。foreach一般結合泛型使用

 

C# 和Java的foreach的不同用法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.