1. 程式人生 > >程式設計基本結構(順序、選擇、迴圈)

程式設計基本結構(順序、選擇、迴圈)

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中編寫