程式設計基本結構(順序、選擇、迴圈)
1、順序結構
是最簡單的一種基本控制結構,它按語句出現的先後順序依次執行
例:
2、選擇結構
根據條件判斷是否執行相關語句
(1).if語句
1)if語句
格式:if(表示式)語句1
2)if-else語句
if(表示式)語句1
else 語句2
先判斷表示式的邏輯值,若該表示式的邏輯值為“真”,則執行語句1,否則執行語句2
注意:
if是一條語句。
如果要執行多個操作,需要將多個操作複合為單條語句,即把需要執行的多條語句用一對大括號括起來,{}後不應有“;”。
3)if-else-if語句
if(表示式)
語句1
else if (表示式2)
語句2
else if (表示式3)
語句3
例:
4)if語句的巢狀
if語句的巢狀主要用於處理多條件的問題,它有多種組合形式,例如if-else結構中可以包含if-else結構,if-else-if結構中可以包含if-else-if結構,也可以相互巢狀使用,例如簡單的if結構中可以包含if-else結構
例:if-else語句巢狀的一般形式為:
if(表示式1)
if(表示式2)
語句1
else
語句2 內嵌語句
else
if(表示式3)
語句3
else
語句4內嵌語句
注意:
- LinuxC並不限制內嵌層數,但多層巢狀容易造成混亂,不推薦使用。
- 設計巢狀選擇結構時,應清晰描述各條件之間的關係。
- 為了避免if與else發生配對錯誤,書寫時可以將if語句中內嵌的if 語句用一對大括號括起來,也可以採用在else子句中內嵌if語句的編寫程式碼。
(2)switch語句
switch語句的用途類似於多分支if語句,但在解決針對單個表示式的問題時比if語句更為簡便。
switch的具體形式:
switch(表示式)
{
case 整數型常量表達式1:語句1[break]
case 整數型常量表達式2:語句2[break]
...
case 整數型常量表達式n:語句n[break]
default:語句n+1
}
例:
注意:
- []表示break可以省略
- switch後的表達好似可以是任意型別的表示式,如整型表示式、字元表示式等,但其運算結果會自動轉換為整型。
- case後的整型常量表達式只能由整型常量構成,常量表達式的型別應與switch後的表示式型別相同,且各常量表達式的值不可相同。
3、迴圈結構
迴圈四要素
- 起點—初始值
- 終點—結束值
- 做什麼事—迴圈體
- 起點到終點的變化一步進 控制值
(1)while語句
while語句是實現當型迴圈結構的語句,它的特點是:"先判斷,後執行",其一般形式為:
while(表示式)
迴圈體語句
例如:
(2)do-while語句
do-while語句是直到型迴圈結構,即“先執行,後判斷”,因此do-while語句至少會執行一次迴圈語句。
其一般形式為:
do
迴圈體結構
while(表示式);
首先執行一次迴圈體語句,然後判斷表示式,如果表示式為0,則繼續執行迴圈體語句;如果表示式為0;則結束迴圈,執行迴圈外的語句。
注意:
1)迴圈體只能是一條語句,如果需要使用多條語句,必須用大括號括起來,採用複合語句的形式。
2)迴圈體語句中一定要有能夠改變表示式值的操作,能夠使表示式的值最終變為0,結束迴圈,否則將變為“死”迴圈。
3)在關鍵字while的小括號的後面,一定要加上分號“;”,它表示do-while語句到此結束。
例如:
(3)for迴圈
for語句是實現當型迴圈結構的語句,特點是,“先判斷,後執行”
其一般形式為;
for(表示式1;表示式2;表示式3)
迴圈體語句;
說明:
1)for語句中的各表示式都可省略,但各表示式之間的分號不能省略。
例如:for(;表示式2;表示式3)省去了表示式1
for(表示式1;;表示式3)省去了表示式2
for(表示式1;表示式2;)省去了表示式
for(;;;)省去了全部表示式
2)若在for語句之前已經給迴圈變數賦了初值,可省去表示式1)
3)若省去表示式2,則迴圈條件為真,迴圈將無休止進行,造成死迴圈
4)若想省去表示式3,可在迴圈體部分增加使迴圈趨於結束的內容
5)省略表示式1和表示式3,則for語句相當於while語句
6) 迴圈體可以是空語句
注意:
1)for語句的迴圈體語句只能是一條語句,如果使用多條語句,必須用大括號栝起來,採用複合語句的形式。
2)for語句要使表示式2的值最終變為0,以結束迴圈。否則將會造成”死“迴圈。
3)for語句形式靈活,表示式1和3均可省略,但一定要確保表示式2最終能夠取0值。表示式省略後,其後的分號不可省。
例:
4.goto語句
goto語句 是一種無條件轉移語句,可以控制程式流程轉向制定名稱標號的地方。
語句標號與goto語句可以不再一個迴圈層中,但必須處於同一個函式內。
格式:
goto語句標號;
...
標號名:語句:
例:
注意:goto語句容易導致結構化程式的邏輯混亂,因此結構化的程式設計方法不提倡使用goto語句,但在退出多層巢狀時,goto語句非常方便
5.break和continue語句
(1)break作用(主要用於迴圈結構和switch語句結構中):
- 一個迴圈中可以包含多個break語句,但一般只有一個
- 當前迴圈內部含有switch語句時,switch內部的break僅影響該switch語句而不會影響其中的迴圈
- break只能結束當前正在執行的迴圈,在執行多重迴圈時需要特別注意
- break語句在迴圈體中使用,能夠強制終止程式的執行,結束迴圈
- 該語句是終止迴圈,即結束該語句所在層的迴圈,轉到迴圈體外的語句去執行
(2)continue(主要用於迴圈體中)作用:
- continue只能用在迴圈裡使用
- continue跳過迴圈體中剩餘的語句而執行下一次迴圈
- 該語句只結束本次迴圈,並不跳出迴圈
順序、結構、迴圈三大結構共同特點
- 均包含一個入口和一個出口
- 每一部分程式碼都有機會執行
- 不存在死迴圈
此程式碼在vs2010中編寫