接下來,我來談談我對c語言中三種迴圈結構域遞迴函式的異同點的理解.
for(初始化語句;判斷條件語句;控制條件語句)
執行流程:
a:執行初始化語句;
b:執行判斷條件語句;
如果這裡是true,就繼續
如果這裡是false,迴圈就結束
c:執行迴圈體語句;
d:執行控制條件語句;
e:回到b.
a:判斷條件語句無論簡單還是複雜,結果是bool型別;
b:迴圈體語句如果是一條,可以省略大括號,但是不建議省略;
c:有分號就沒有左大括號,有左大括號就沒有分號.
#include
int main ()
printf("for迴圈:sum = %d\n",sum);
return 0;
}(1)基本格式
while(判斷條件語句)
(2)擴充套件格式:
初始化語句;
while(判斷條件語句)
a:使用上的區別
while迴圈與for迴圈可以互換,區別在於for為了迴圈而定義的變數在for迴圈結束就是在記憶體中釋放。
而while迴圈使用的變數在迴圈結束後還可以繼續使用。這是因為for迴圈中定義的變數是區域性變數,
而while迴圈的初始化變數定義在while迴圈體外,是乙個全域性變數.
b:理解上的區別
for迴圈適合於乙個範圍的判斷;
while迴圈適合次數不明確的.
#include
int main ()
printf("while迴圈:sum = %d\n",sum);
return 0;
}do while(判斷條件語句);
初始化語句;
do while(判斷條件語句);
#include
int main () while(i <= 100);
printf("do...while迴圈:sum = %d\n",sum);
return 0;
}1.通過檢視for迴圈的基本格式和while及do...while迴圈的擴充套件格式,可知三種迴圈的格式是可以統一的,都需要滿足四個條件(有時可省略其中幾個條件).
2.三種迴圈的區別
a:do...while迴圈至少執行一次迴圈體;
b:for和while必須先判斷條件是否是true,然後後才能決定是否執行迴圈體.
3.迴圈使用的注意事項(死迴圈)
a:一定要注意修改控制條件,否則容易出現死迴圈;
b:最簡單的死迴圈格式
a:while(true)
b:for( ; ; )
函式型別 函式名(引數列表)
呼叫遞迴函式:函式名(初始化引數);
因為遞迴函式是函式自己呼叫自己,所以在每次呼叫函式時,都會重新建立新的變數,這些變數,以及呼叫者的位址(返回時需要),都儲存在堆疊中,
遞迴函式每遞迴一次都會造成堆疊上新增加一塊資料,即不斷的增大記憶體空間的使用量.
所以程式設計師要確保堆疊的空間夠大,能夠容納遞迴函式在遞迴的時候產生的中間結果.
/*使用遞迴遍歷下面的陣列
int array = ;
*/#include
// 遞迴函式
void arr(int array, int index)
/* 控制條件語句 */
index --;
/* 函式名(引數列表)--->遞迴函式本身 */
arr(array,index);
/* 迴圈條件語句 */
printf("%d ",array[index]);
}int main () ;
// 獲取陣列的長度
int count = sizeof(array) / sizeof(int);
/* 呼叫遞迴函式:函式名(初始化引數) */
arr(array,count);
printf("\n");
return 0;
}即使遞迴函式可以對某些問題提供優雅和緊緻的解決方案,但是簡單的迴圈同時也是可以實現的.
另一方面遞迴函式在遞迴的過程中,不斷開闢空間,對記憶體的消耗過大,但是簡單的迴圈卻沒有這樣的問題,所以能使用迴圈解決的問題,
最好不要使用遞迴函式解決.
題目:有6個人坐在一起,問第6個人有多少歲,他說比第5個人大3歲;問第5個人有多少歲,他說比第4個人大3歲;
問第4個人有多少歲,他說比第3個人大3歲;問第3個人有多少歲,他說比第2個人大3歲;
問第2個人有多少歲,他說比第2個人大3歲;問最後1個人,他說是15歲.那麼,第6個人多少歲?
#include
int main ()
printf("第6個人%d歲.\n",age);
return 0;
}#include
int main ()
printf("第6個人%d歲.\n",age);
return 0;
}#include
int main () while(i < 6);
printf("第6個人%d歲.\n",age);
return 0;
}#include
// 遞迴函式
int age(int a)
/* 這一句集中了迴圈體語句和控制條件語句 */
return 3 + age(a - 1);
}int main ()
C語言中的三種迴圈
在c語言中迴圈可分為3種,while迴圈 do while迴圈 for 迴圈。一 while迴圈 while即 首先檢查啟動迴圈的條件是否滿足,當條件滿足時,不斷地重複迴圈體內的語句,直到不滿足條件就退出。while迴圈基本形式 while 條件 eg 1 輸入任意個int型,整數並判斷其位數 in...
C語言中的三種迴圈語句
目錄 while即 首先檢查啟動迴圈的條件是否滿足,當條件滿足時,不斷地重複迴圈體內的語句,直到不滿足條件就退出。while迴圈基本形式 while 條件 eg 1 輸入任意個int型,整數並判斷其位數 include int main printf d n n return0 eg 2 判斷輸入的...
C 基礎語言之(三C 中四種cast轉換)
說起型別轉換,我們常見的就是c中的隱式型別轉換和顯式型別轉換 1.隱式型別轉換 隱式轉換就是系統預設的 不需要加以宣告就可以進行的轉換。在隱式轉換過程中,編譯器無需對轉換進行詳細檢查就能夠安全地執行轉換。int i 1 float f i 2.顯式型別轉換 強制型別轉換 區別在於當向下轉換時如果不顯...