C#教程第四課:迴圈控制語句
本節課將介紹如何使用C#控制語句中的迴圈語句,本課目的如下:
1.學會"while"迴圈的用法。
2.學會"do" 迴圈的用法。
3.學會"for" 迴圈的用法。
4.學會foreach迴圈的用法。
5.進一步瞭解"break"語句的用法。
6.如何使用"continue"語句。
在C#中,使用"goto"語句並不是一個最佳的建立迴圈的方法。本節課將介紹建立迴圈的常用方法。
第一個要介紹的語句是while迴圈語句
1.清單 4-1. While迴圈:While loop.cs |
using System; class Whileloop { public static void Main() { int myInt = 0; while (myInt < 10) { Console.Write("{0} ", myInt); myInt++; } Console.WriteLine(); } } |
說明 |
1.清單 4-1演示了一個簡單的while 迴圈。
以關鍵字"while"開始,後面是個布林表示式。所有的控制語句都使用了布林表示式。這就意味著表示式必須計算出true 或者false值。本例中,我們將檢查myInt變數,看看它是否小於10。 因為myInt已經初始化為0,第一次計算時,該布林表示式將返回true值。一旦布林表示式的值為true,將執行該布林表示式後面塊中的語句。
2.在while塊中,我們把數字和空格輸出到控制檯中,之後,對 myInt進行加1運算。一旦執行了while塊中的語句之後,再次計算布林表示式的值,這種情況將一直迴圈下去,直到該布林表示式的值為false為止。 一旦布林表示式的值為false, 程式將從while 塊之後的第一條語句開始執行。在本例中,我們把數字0到9輸出到控制檯中,之後退出while塊,再輸出一個新行到控制檯。
同 "while"迴圈類似的是"do" 迴圈語句。
2.清單 4-2. Do 迴圈: Do loop.cs |
using System; class Doloop { public static void Main() { string myChoice; do { // Print A Menu Console.WriteLine("My Address Book\n"); Console.WriteLine("A - Add New Address"); Console.WriteLine("D - Delete Address"); Console.WriteLine("M - Modify Address"); Console.WriteLine("V - View Addresses"); Console.WriteLine("Q - Quit\n"); Console.WriteLine("Choice (A,D,M,V,or Q): "); // Retrieve the user's choice myChoice = Console.ReadLine(); // Make a decision based on the user's choice switch(myChoice) { case "A": case "a": Console.WriteLine("You wish to add an address."); break; case "D": case "d": Console.WriteLine("You wish to delete an address."); break; case "M": case "m": Console.WriteLine("You wish to modify an address."); break; case "V": case "v": Console.WriteLine("You wish to view the address list."); break; case "Q": case "q": Console.WriteLine("Bye."); break; default: Console.WriteLine("{0} is not a valid choice", myChoice); } // Pause to allow the user to see the results Console.Write("Press any key to continue..."); Console.ReadLine(); Console.WriteLine(); } while (myChoice != "Q" && myChoice != "q"); // Keep going until the user wants to quit } } |
說明 |
1.清單 4-2 演示了"do"迴圈的例子。 "do" 迴圈的格式是: do { } while ();其中的語句可以是任何合法的C#語句,布林表示式同以前的規定一樣,其返回值要麼為true,要麼為false。
2.如果你打算輸出清單4-2 中的資訊或者選單,之後再讀取使用者的輸入,那麼就使用"do" 格式的迴圈而不要使用"while" 格式的迴圈語句。因為在本例中,布林表示式的值是在迴圈結束處進行計算的, "do" 迴圈可以保證:迴圈體中的語句至少執行一次。與此相對應的是:"while" 迴圈一開始時,計算布林表示式的值,"while" 迴圈不能保證迴圈體中的語句能夠至少執行一次。
3.讓我們來回顧一下清單 4-2中的內容。
在Main()方法中,我們定義了變數 "myChoice"為字串型別。之後,輸出一些資訊到控制檯,即輸出一個可讓使用者進行選擇的選單。我們必須要得到使用者的輸入,即Console.ReadLine()方法所返回的值,該值存放在myChoice變數中。我們必須先得到使用者的輸入,之後再處理。要完成這件事,一個有效的方法是就使用 "switch"語句。注意到:為了獲得同樣的功能,我們既匹配了小寫字母,也匹配了大寫字母。另外一點是:我們使用了 "default:" case,這是個良好的程式設計作風。
3.清單 4-3. For 迴圈: For loop.cs |
using System; class Forloop { public static void Main() { for (int i=0; i < 20; i++) { if (i == 10) break; if (i % 2 == 0) continue; Console.Write("{0} ", i); } Console.WriteLine(); } } |
說明 |
1.清單 4-3 演示了"for" 迴圈的用法。
當你能夠精確地知道迴圈的次數時, For 迴圈語句就派上了用場。本程式同清單 4-1中"while" 迴圈程式的執行結果一樣。 "for" 迴圈中,括號中內容由三個由分號隔開的部分: "(; ;
2.初始化表是個由逗號隔開的表示式,在"for" 迴圈的整個週期中,這些表示式僅僅計算一次。計算是在一開始進行的,並且在迴圈語句的執行之前進行。正如在清單 4-3所見,通常初始化表是先初始化一個作為計數器的整型變數。
3.一旦進行初始化後, "for" 迴圈就進入第二部分:布林表示式的計算。 這裡的布林表示式可以寫得很複雜,但是結果只能是true或者false。布林表示式通常用來驗證計數器變數的狀態。
4.一旦布林表示式的值為true時,就會執行"for" 迴圈大括號中的語句。通常情況下,這些語句從左大括號開始,不中斷地一直執行到右大括號。但在清單4-3中,有幾個例外,幾個"if"語句改變了程式的流程。
第一個"if"語句檢查"i"是否等於10,這裡使用了"break"語句,可在此處跳出迴圈,轉入 "for"塊後面的第一條語句的執行。
第二條"if"語句使用了求餘運算子,看看"i"是否能夠被2整除,如果餘數等於0,就執行 "continue"語句。控制將跳過迴圈體中餘下的語句,轉入下一輪新的迴圈。你需要在塊中正確地組織好語句,一旦滿足有關條件,就執行相應的語句。
5.一旦程式流程遇到continue語句,或者遇到塊的結尾處的右括號, 就轉入"for" 迴圈括號中的第三項:post-loop 動作表,該表由逗號隔開,在"for"塊中的語句都執行完畢之後,就執行該動作表中的動作。 清單 4-3中的 post-loop 動作表中的動作很典型:計數器加1。一旦動作表執行完畢,流程就轉到對布林表示式值進行判別。迴圈將繼續進行下去,直到布林表示式的值為true。當布林表示式的值為false,控制流程就轉到 "for"塊之後的第一條語句。
4.清單 4-4. The ForEach 迴圈: ForEachloop.cs |
using System; class ForEachloop { public static void Main() { string[] names = {"Cheryl", "Joe", "Matt", "Robert"}; foreach (string person in names) { Console.WriteLine("{0} ", person); } } } |
說明 |
1."foreach" 迴圈列舉出集合中所有的元素。
清單 4-4所使用的陣列型別,就是這樣的一個集合。(在"System.Collections"也可以由其他的資料型別作集合。). 在Main()方法中,我們所做的第一件事是:定義由四個字串組成的陣列names。
2."foreach"括號中的表示式是由關鍵字in隔開的兩個項組成。in右邊的項是集合名,in左邊的項是變數名,用來存放該集合中的每個元素。
該迴圈的執行過程如下:每一次迴圈時,從集合中取出一個新的元素值,放到只讀變數中去,括號中的整個表示式返回值為true, "foreach"塊中的語句就能夠執行。一旦集合中的元素都已經被訪問到,整個表示式的值為false,控制流程就轉入到 "foreach" 塊後面的第一條可執行語句。
3.在清單 4-4的例子中,我們使用了字串變數person用來存放names陣列的每個元素,並且使用Console.WriteLine()方法輸出person 變數的值。
小結
到現在為止,你已經瞭解了"while","do","for"和"foreach" 迴圈語句的用法。最後你也學習瞭如何設定有關條件,來改變迴圈體塊中的語句的流程。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-580652/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-FOR迴圈SQL
- 流程控制、 迴圈語句
- swift控制流——迴圈語句Swift
- linux 迴圈控制語句Linux
- PL/SQL迴圈控制語句SQL
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-基本迴圈(EXIT語句)SQL
- JavaScript 流程控制語句詳解:if語句、switch語句、while迴圈、for迴圈等JavaScriptWhile
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-WHILE迴圈SQLWhile
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-FOR迴圈-FOR迴圈中的索引SQL索引
- php中有哪些迴圈控制語句PHP
- C#快速入門教程(14)—— 迴圈語句結構C#
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-FOR迴圈-下限和上限SQL
- C#程式設計基礎第七課:C#中的基本迴圈語句:while迴圈、do-while迴圈、for迴圈、foreach迴圈的使用C#程式設計While
- Vue.js第五課 迴圈語句Vue.js
- Matlab的if語句switch語句for迴圈while迴圈語句練習MatlabWhile
- 【分支流程控制語句、迴圈流程控制語句】的學習
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-CONTINUESQL
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-EXIT WHENSQL
- TypeScript 迴圈語句TypeScript
- JavaScript for 迴圈語句JavaScript
- MySQL迴圈語句MySql
- Oracle迴圈語句Oracle
- 2-4 Java流程控制——迴圈語句Java
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-CONTINUE WHENSQL
- JavaScript跳出for迴圈語句JavaScript
- java 迴圈語句(轉)Java
- 第 7 節:流程控制-迴圈練習-跳出語句
- Python的迴圈語句Python
- 6、迴圈結構語句
- c語言基礎語法二——迴圈控制條件語句(完節)C語言
- Python-條件語句和迴圈語句Python
- vue.js第四課 條件與迴圈Vue.js
- [譯] part 9: golang 迴圈語句Golang
- 【Python基礎】for迴圈語句Python
- MyBatis xml foreach迴圈語句MyBatisXML
- Java簡單迴圈語句案例Java
- Python 迴圈語句的使用Python
- 分支、迴圈語句動態展示