本章要求:
1.熟練掌握for迴圈結構
2.熟練掌握while和do while迴圈結構
語句和break語句
4.迴圈的巢狀
概述迴圈結構是程式中一種很重要的結構。其特點是,在給定條件成立時,反覆執行某程式段,直到條件不成立為止。給定的條件稱為迴圈條件,反覆執行的程式段稱為迴圈體。
c語言提供了多種迴圈語句,可以組成各種不同形式的迴圈結構。
1) 用goto語句和if語句構成迴圈;(只要了解)
2) 用while語句;
3) 用do-while語句;
4) 用for語句;
1. for語句
在c語言中,for語句使用最為靈活!
語句格式:
for(表示式1;表示式2;表示式3)
迴圈體語句;
例如: for(i=1;i<=100;i++)
表示式1:
通常用來給迴圈變數賦初值,一般是賦值表示式,也允許在for語句外給迴圈變數賦初值,此時可以省掉該表示式。
表示式2:
通常是迴圈條件,一般是關係表示式或邏輯表示式。
表示式3:
通常可以用來修改迴圈變數的值,一般是賦值語句
注意: 這三個表示式都是任選項,都可以省掉,語句格式中的語句就是迴圈體語句,可以是一條語句,也可以是一條復合語句。
for語句的執行過程:
(1) 先求解表示式1;
(2) 求解表示式2,如果值為真,則執行(3),否則執行(6);
(3) 執行「語句」部分;
(4) 求解表示式3;
(5) 返回(2);
(6) 執行for語句下面的一條語句;
執行過程如下圖:
for語句的說明
1. for語句中的表示式1可以省掉,但應在迴圈之前給出迴圈控制變數的值。
如: int i=1;
for(;i<=100;i++)
語句;2. 如果表示式2省掉了,就不判斷迴圈條件,構成死迴圈。
3. 表示式3可以省掉,但應該另有語句保證迴圈結束。
如: for(i=1;i<=100;)
4. 可以同時省掉表示式1和表示式3,只保留表示式2,即只給出迴圈條件。
如: int i=1;
for(;i<=100;)
5. 三個表示式都可以省掉。
如: for(;;) 構成死迴圈,這時應該在迴圈體內設法結束迴圈。
例:求1+2+3+…..+100=?
main()
本程式執行過程是:
1) 給i賦初值為0;
2) 判斷i是否是超過100,如果沒有超過100,執行3);否則執行5);
3) 執行sum=sum+1;
4) 返回2);
5)輸出sum的值;
6)程式結束;
2. while語句結構
語句格式是:
while(表示式)
語句;執行過程是:
1)計算表示式的值;
2)判斷表示式的值,當值為真時,執行迴圈體語句3);否則執行5);
3)執行迴圈體;
4)返回2);
5)程式結束。
執行過程如下圖所示;
例如:輸入0~100間的偶數
main()
}while語句的說明:
是c語言的關鍵字;
後一對圓括號中的表示式,可以是c語言中任意合法的表示式,由它來控制迴圈體是否執行,一般是關係表示式或邏輯表示式;只要表示式的值是真,則繼續迴圈
3.在語法上,要求迴圈體可以是一條簡單的可以執行的語句,若迴圈體內需要多個語句時,則應該用一對花括號把它們括起來,組成一條復合語句;
4.應該注意迴圈的選擇,避免死迴圈;
5.允許while語句的雙重迴圈;
語句語句格式:
do 語句;
while(表示式);
其中語句是迴圈體,表示式是迴圈條件.
說明:是c語言的關鍵字,必須和while聯合使用;
迴圈由do開始,用while 結束,在while(表示式)後面的分號不能丟失,它表示該迴圈語句的結束.
do-while語句的執行過程:
while語句和do-while語句的區別:
do-while語句是先執行後判斷,因此,do-while語句至少要執行迴圈體一次;而while語句是先判斷後執行,如果條件不滿足的話,則一次迴圈也不執行。
4.迴圈的巢狀
在乙個迴圈體內又完整的包含了另乙個迴圈,叫做迴圈巢狀!
例如: 程式設計求解「百雞百錢」問題
公雞5元乙隻,母雞3元乙隻,小雞1元3只,求一百元買一百隻雞的方法?
#include <>
main()
5. break語句和continue語句
break語句
介紹:一, break語句只能用在switch語句和迴圈語句中
二, 當出現在switch語句中時,表示跳出該switch語句;當break語句出現在迴圈體語句中時,表示跳出本層迴圈體。
例如:main()
}程式的輸出結果是:
s=1s=3
continue語句
介紹:continue語句只能用在迴圈體中,
格式: continue ;
意義: 結束本次迴圈,即不再執行迴圈體中,continue語句之後的語句,轉入下一次迴圈條件的判斷與執行,注意的是,本語句只結束本層的本次迴圈,並不跳出迴圈;
例如:輸入100以內能被9整除的數。
main()
}例題: 求100至200間的全部素數。
#include<>
main()
if(n%n==0)printf(「\n」);
}printf(「\n」);}
C語言 第5章迴圈結構程式設計
一 單項選擇題 1 在c語言中,下列說法中正確的是 a do while語句構成的迴圈不能用其它語句構成的迴圈來代替。b do while語句構成的迴圈只能用break語句退出。c do while語句構成的迴圈在while後的表示式非零時結束迴圈。d do while語句構成的迴圈,在while後...
第5章迴圈結構程式設計
程式的三種基本結構 順序結構 用來描述依次執行的操作。選擇結構 對判定性問題的處理。迴圈結構 對有規律的重複性的事務的處理。5 1 迴圈結構概述 1 用goto語句和if語句構成迴圈 2 用while語句 3 用do while語句 4 用for語句。5 2 while語句 其一般形式如下 whil...
VB課件第5章迴圈結構程式設計
如果這樣計算 s 1s s 2 s s 2 s s 2 很顯然,這不是解決問題的方法.在程式設計中要解決此問題,就需使用迴圈結構語句 vb提供三種不同風格的迴圈結構,包括 當迴圈 while wend迴圈 do迴圈 do loop迴圈 for迴圈 for next 迴圈 其中for迴圈按規定的次數執...