迴圈是蝦米東西?我用一個例子來跟大家解釋,假如我想要在銀幕上看到1,2,3,4....10的數字,要怎麼做呢?如果前面幾篇文章都有了解的話,心裡應該會想說,這有什麼困難的..
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Loop_Sample { class Program { static void Main(string[] args) { Console.Write("1" + "\r\n"); Console.Write("2" + "\r\n"); Console.Write("3" + "\r\n"); Console.Write("4" + "\r\n"); Console.Write("5" + "\r\n"); Console.Write("6" + "\r\n"); Console.Write("7" + "\r\n"); Console.Write("8" + "\r\n"); Console.Write("9" + "\r\n"); Console.Write("10" + "\r\n"); Console.ReadKey(); } } } |
的確,這樣做可以達到我剛剛的目的,但是,如果使用迴圈,將會有更簡單的做法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Loop_Sample { class Program { static void Main(string[] args) { for (int i = 1; i <= 10; i++) { Console.Write(i + "\r\n"); } Console.ReadKey(); } } } |
蝦米!!程式碼少這麼多而且結果竟然是一樣的,誰來給我講講迴圈是怎麼回事。
上面使用的是迴圈的敘述之一【for】,【for】的關鍵是必須要有一個【變數】,【判斷式】以及變數的【改變規則】。
【for】是這樣運作的,程式會宣告一個變數,並給予初始值,接著檢查【判斷式】,若【判斷式】【成立】,則繼續執行大括弧裡面的程式碼,執行完大括弧裡的程式碼再回過頭來,先依照變數的改變規修改變數,再檢查【判斷式】,如此循環直到【判斷式】【不成立】。
頭很暈?讓我用上面的程式碼來解釋。
【for】後面我宣告一個整數變數【i】,【判斷式】為變數【i】要小於或等於整數10,變數的改變規則為每次都把目前的變數【i】加1。 接著我們看程式怎麼運作:
一開始 i = 1。
檢查【判斷式】i<=10,因為i = 1 小於等於 10【成立】,執行大括弧的程式碼。
回過頭來i++,i目前內容是1,所以i加1之後的內容為2。
檢查【判斷式】i<=10,因為i = 2 小於等於 10【成立】,執行大括弧的程式碼。
回過頭來i++,i目前內容是2,所以i加1之後的內容為3。
.
.
.
.
.
.
檢查【判斷式】i<=10,因為i = 10 小於等於 10【成立】,執行大括弧的程式碼。
回過頭來i++,i目前內容是10,所以i加1之後的內容為11。
檢查【判斷式】i<=10,因為i = 11 小於等於 10【不成立】,程式結束。
有沒有比較清楚的【for】的用法了,上面的題目也可以用另外一個迴圈的敘述【while】來寫。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Loop_Sample { class Program { static void Main(string[] args) { int i = 1; while (i <= 10) { Console.Write(i + "\r\n"); i++; } Console.ReadKey(); } } } |
咦!結果一樣,那【while】的用法又是什麼?其實【while】與【for】一樣需要一個【變數】,【判斷式】以及變數的【改變規則】,運作的方式也相同,都是先檢查【判斷式】,如果【判斷式】【成立】,執行大括弧的程式碼,然後把目前變數內容加1,接著再檢查【判斷式】如此循環。
那麼,這兩種用法的差異在哪邊?我會說,【for】使用起來比較【方便】,【while】使用起來比較【彈性】,沒有一定要用哪一個迴圈寫法,要看情況使用。
另外,迴圈的敘述除了這篇文章介紹的【for】、【while】之外,還有【do..while】、【foreach】等,而且迴圈敘述大多可以搭配【break】敘述來【中斷】迴圈或是【continue】敘述來【略過】迴圈,以後有機會會陸續在文章中出現,求知慾強的可以先到網路上找尋相關資料來看,今天就先到這,改天見。
沒有留言:
張貼留言