3C科技 娛樂遊戲 美食旅遊 時尚美妝 親子育兒 生活休閒 金融理財 健康運動 寰宇綜合

Zi 字媒體

2017-07-25T20:27:27+00:00
加入好友
到目前為止,我們的程式差不多都是由上往下走,很循序漸進的執行。如果想要讓重複性的執行某些動作,就必須使用迴圈結構。 迴圈是什麼?迴圈就是重複性的執行某個區段裡的程式碼。但要重複幾次?什麼情況下要重複?迴圈有幾種?慢慢把它看完你就懂了! 在 C 語言裡面,迴圈主要有三種:for、while、do while。 for 迴圈 for 迴圈的基本架構是這樣的: for(初始化動作; 執行條件 ; 增加動作){ 敘述 } 通常我們會使用一個變數來當作計數器(counter),初始化動作會給這個計數器一個起始值;第二個是執行條件,只有當符合執行條件的時候才會進到 for 迴圈裡執行敘述;第三個則是每次做完敘述要增加的動作。 例如下面這段程式碼,可以輸出 1~5 的數字: #include int main(){ int i; for(i=1;i<=5;i++){ printf("%d ", i); } } 輸出結果會是: 1 2 3 4 5 看似困難的 for 迴圈,其實只要搞清楚他的脈絡是怎麼走的,就不會亂掉了。 同樣的,也可以用巢狀 for 迴圈來印出直角三角形。 #include int main(){ int i, j; for(i=1;i 輸出結果會是: * ** *** **** ***** 原則上,使用 for 迴圈的時機為需要一個計數器從小到大(或從大到小)慢慢做某件事情。 while 迴圈 while 迴圈的基本架構則是這樣,其實比 for 還要簡單: while(條件){ 敘述 } 只要條件成立,就會一直執行敘述。所以 while 迴圈的使用時機為:達成某個條件時就一直做某件事情的時候。 例如我一樣要輸出 1~5 的數字: #include int main(){ int i=1; while(i<=5); printf("%d ", i); i++; } } 輸出結果: 1 2 3 4 5 當然,while 也可以弄成巢狀迴圈。 do-while 迴圈 do while 迴圈其實不太重要?畢竟他就是 while 迴圈,只是迴圈開始之前再做一件事情而已,架構如下: do { 敘述 } while (條件); 一開始會先執行一次敘述,接著去判斷條件是否成立,成立的話再回去執行敘述,直到條件不成立為止。 值得注意的是 while (條件); 最後面有個分號。 不過 do while 迴圈還是有它的用途,例如我要計算正整數的位數: #include int main(){ int digits = 0, n; printf("輸入一個正整數:"); scanf("%d", &n) do { n /= 10; digits++; } while (n>0); printf("這個整數是 %d 位數\n", digits); return 0; } 如果我們單純使用 while(n>0) 的迴圈的話,那輸入 0 會顯示 0 位數,但答案應該是 1 位數,這時候使用 do-while 迴圈就可以解決這個問題了。 以上就是 C 語言中的三種迴圈。從 while 和 for 的範例中可以發現,同樣的結果其實用三種迴圈都可以寫得出來,不過通常我們會選擇看起來最簡潔的,或是自己最習慣的方式。可別小看 C 語言只有三種迴圈,這三種迴圈搭配起來就可以做到很多不同的事情唷! 再者,巢狀迴圈中需要注意:通常當你有 n 層迴圈,你就會至少用到 n 個變數。 我要學會 C 語言 目錄 我要學會 C 語言(一):Hello, World! 我要學會 C 語言(二):有小數點的數不是整數之資料型態 我要學會 C 語言(三):加加減減乘除的變數運算 我要學會 C 語言(四):輸入與輸出好好玩 我要學會 C 語言(五):如果這樣會怎樣之選擇結構 我要學會 C 語言(六):繞啊繞轉啊轉的迴圈結構 我要學會 C 語言(七):寫一遍就能用好幾遍好方便的函式 註:感謝 iGene 大大協助 lazy Noob 撰文 XD

本文由noobtw提供 原文連結

寫了 5860316篇文章,獲得 23313次喜歡
精彩推薦