在C語言中迴圈可分為3中,while迴圈、do - while迴圈、for 迴圈。 一、while迴圈 while即:首先檢查啟動迴圈的條件是否滿足,當條件滿足時,不斷地重覆迴圈體內的語句,直到不滿足條件就退出。 while迴圈基本形式: ...
------------恢復內容開始------------
在C語言中迴圈可分為3中,while迴圈、do - while迴圈、for 迴圈。
一、while迴圈
while即:首先檢查啟動迴圈的條件是否滿足,當條件滿足時,不斷地重覆迴圈體內的語句,直到不滿足條件就退出。
while迴圈基本形式:
while (條件){ <迴圈體>;
<迴圈體>;
}
eg: 1
//輸入任意個int型,整數並判斷其位數 #include <stdio.h> int main() { int x; int n=0; scanf("%d",&x); n++; x /=10; while (x > 0){ n++; x /=10; } printf("%d\n",n); return 0;
}
eg: 2
//判斷輸入的位數 /* 1.用戶輸入x; 2.初始化n為0; 3.x = x/10,去掉個位; 4.n++; 5.如果 x>0,回到3; 6.否則n就是結果; */ #include <stdio.h> int main() { int x; int n=0; scanf("%d",&x); n++;//n=1 x /=10;//對輸入的數進行取整數商,得到的 x放入while迴圈中 while (x > 0){ //判斷 x 是否大於零,滿足條件則執行大括弧中的語句 n++;//n=2 x /=10; } printf("%d\n",n); return 0; }
eg: 3
//輸入一個數,計算階乘(while方法)
#include <stdio.h> int main() { int n;//定義變數n為輸入的數 scanf("%d",&n);//讀入輸入的數 int fact = 1;//定義變數fact保存程式的結果 (初始化) int i = 1;//定義變數 i 作為迴圈條件 (初始化) while (i <= n){ fact *= i; i ++; } printf("%d!=%d\n",n,fact); return 0; }
二、do while 迴圈
do while 即:進入do while 前不做檢查,而是在執行完一輪迴圈後再來檢查迴圈的條件是否滿足,如果滿足則繼續下一輪迴圈,不滿足則結束迴圈。
do while 迴圈至少是要被執行一次的!
基本形式:
do { <迴圈體>; <迴圈體>; }while (<條件>); //在while大括弧後面必須要有括弧
while迴圈和do while 迴圈的區別:while迴圈是先判斷條件, do while 迴圈是在執行了一輪迴圈後再來判斷條件,無論條件是否滿足do while 都至少會被執行一輪,
而while迴圈是條件滿足執行,不滿足結束迴圈。
eg:
//判斷任意位數(do -while方法) #include <stdio.h> int main() { int x; int n=0; scanf("%d",&x); do { x /=10; n ++; } while( x >0); printf("%d\n",n); return 0; }
三、for 迴圈
for迴圈類似一個計數迴圈,設定一個計數器,初始化它,然後在計數器到達某值之前重覆執行迴圈體,同時每執行一輪迴圈,計數器值以一定步進進行調整。
for(初始動作,條件,每輪的動作){
<迴圈體>;
<迴圈體>;
}
小套路:做求和程式時,記錄結果的變數應該初始化為0;而做求積的 程式時,記錄結果的變數應該初始化為1.
while迴圈和for 迴圈可以說是等價的,任何一個for迴圈都可以改造成while迴圈
//while迴圈和for 迴圈可以說是等價的,任何一個for迴圈都可以改造成while迴圈 for (int i= 1, i <=n, i ++){ fact *= i; } ||||||| ||||||| int i = 1; while ( i <=n ){ fact *=i; i ++; }
eg:
//輸入一個數,計算階乘(for方法) #include <stdio.h> int main() { int n; scanf("%d",&n); int fact = 1; int i = 1;//定義變數 i 初始值為1 for (i=1; i<=n; i++ ){ //i=1作為初始條件 ,i<=n是迴圈繼續的條件,i++是 迴圈每一輪要做的事情 /* 例如我前面輸入的變數 n 等於4,當執行到 for 迴圈時。首先電腦會將變數 i=1 作為初始值 如果 i 小於等於4就執行迴圈,即執行迴圈體的語句塊,最後再來執行 i++, 反之就跳出迴圈*/ fact *= i; } printf("%d!=%d\n",n,fact); return 0; }
總結:如果程式迴圈的次數,有固定次數用for;
如果必須執行一次,用do - while;
其它情況用while;
------------恢復內容結束------------