C#教程第四課:迴圈控制語句

來源:互聯網
上載者:User
教程|控制|迴圈|語句 本節課將介紹如何使用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" 迴圈中,括弧中內容由三個由分號隔開的部分: "(<初始化表>; <布林運算式>; <post-loop 動作表>)"組成

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" 迴圈語句的用法。最後你也學習了如何設定有關條件,來改變迴圈體塊中的語句的流程。 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.