回覆列表
-
1 # 奔跑的蝸牛rs
-
2 # 玩轉嵌入式
if和while是C語言中常用的兩個語句,但是區別很大,完全不同。
1.if用來做條件判斷if用來做條件判斷,與else搭配使用。在if條件判斷中,若邏輯條件表示式為真,則執行語句或語句塊;如果邏輯條件表示式為假,則跳過語句;
例如,超過五點下班走人,否則就繼續上班。在這裡“時間”就是判斷條件,時間就是下班或者上班,如下所示:
只要時間超過五點,即判斷條件為真,則執行的事件就是下班,else語句不再執行,即不再執行上班語句;只要事件沒有超過五點,則執行上班語句。
2.while是迴圈語句在C語言中通常用while來表示迴圈,例如在main()函式中一般都用while(1)來讓主程式迴圈執行。即在邏輯條件表示式為真的情況下,while反覆執行迴圈體內包含的語句或語句塊,直到條件不成立。
例如:天氣如果是下雨就執行睡覺指令,直到不下雨為止;如陰天、晴天或者下雪等其他天氣就不執行睡覺指令。
3.do-while 迴圈語句do-while也是經常使用的迴圈語句,但是與while迴圈存在區別。
do-while先執行迴圈中的語句,然後再判斷表示式是否為真,如果為真則繼續迴圈;如果為假, 則終止迴圈。因此, do-while迴圈至少要執行一次迴圈語句。while迴圈是先判斷後迴圈 ,而do–while迴圈是先迴圈後判斷。
例如上圖中,先執行睡覺指令,然後才判斷天氣是不是下雨,如果天氣是下雨就繼續睡;如果天氣不是下雨,就終止睡覺事件。總之,不管天氣有沒有下雨,判斷之前先睡覺。
這是兩種型別的語句。
if語句叫做選擇語句,一般和else一起使用。判斷條件是否成立,成立則執行if後面的分支,不成立則執行else後面的分支。執行完畢則轉入下條語句。
while語句叫做迴圈語句。同樣是判斷條件是否成立。但是執行完畢後繼續判斷該條件,直到該條件不成立則轉入下一條語句。
對於一個假條件,兩者的執行情況是一致的。對於一個真條件,執行完畢後if語句就順序執行下一條,while還要繼續判斷和執行。這就是兩者的不同吧。
對於while語句,必須要在執行語句中設定改變判斷條件結果的語句或者設定跳出語句以避免陷入死迴圈。