C語言隨記(二) 結構化程式設計

2021-07-11 23:06:58 字數 2460 閱讀 8293

if (條件a)
如果表示式a的值為真,則執行語句a,如果為假,則不執行。

if (條件a) else
如果條件a的值為真,則執行語句a,如果為假,則執行語句b。

if (條件a) 

else

if (條件b)

else

如果條件a的值為真,則執行語句a,如果為假且條件b為真,則執行語句b,否則執行語句c。

tip:

在三種if語句中,在if關鍵字之後均為表示式。該表示式一般是邏輯表示式或關係表示式。但也可以是其他表示式,如賦值表示式,甚至是乙個變數。

在if語句中,條件判斷表示式必須用括號括起來,且在語句之後必須加分號。

在if語句的三種語句中,所有語句應為單個語句,如果想在滿足條件時執行一組(多個)語句,則必須把這一組語句用{}括起來組成乙個復合語句。注意:在}後不能再加分號。

在實際開發中,在使用if語句的時候,即使是只執行一條語句,最好也使用{}括起來。

switch (表示式)
計算表示式的值,並逐個與其後的常量表示式的值相比較。當表示式的值與某個常量表示式的值相等時,即執行其後的語句,然後不再進行判斷,繼續執行後面所有case後的語句。如果表示式的值與所有case後的常量表示式均不相同時,則執行default後的語句。

tip:

在case後的各常量表示式的值不能相同,否則會出現錯誤。

在case後,允許有多個語句,可以不用{}括起來。

各case和default子語句的向後順序可以變動,而不會影響程式執行結果。

default子語句可以省略不寫。

如果在執行完語句n後想要跳出switch語句,需要在語句n後新增break語句跳出。

while(表示式)
計算表示式的值,當值為真(非0)時,執行迴圈體語句。

tip:

在c語言中,非0為真,即大於0或小於0都為真,0為假。

do 

迴圈體while(表示式);

先執行一次迴圈體,然後再判斷表示式是否為真,如果為真則繼續迴圈,,如果為假,則終止迴圈。

tip:

在使用do-while迴圈時,不要忘記while(表示式)後的分號(;)。

當迴圈體有多條語句時,需要使用{}括起來。

for (表示式1; 表示式2; 表示式3)
其執行過程為:

先求解表示式1。

求解表示式2,如果為真,則執行for語句中的迴圈體,然後再執行下面的第3步;如果不為真,則結束迴圈,跳轉到第5步。

求解表示式3.

轉回第2步繼續執行。

迴圈結束,執行for語句後面的語句。

了解for語句的執行過程之後,我們可以把for語句寫成如下形式,便於理解

for (迴圈變數初始化; 迴圈條件; 迴圈變數增量)
迴圈變數初始化總是乙個賦值語句,它用來給迴圈控制變數賦初值。迴圈條件是乙個關係表示式,它決定什麼時候退出迴圈。迴圈變數增量,定義迴圈控制變數每迴圈一次後按什麼方式變化。

tip:

for迴圈中的「表示式1(迴圈變數初始化)」、「表示式2(迴圈條件)」、「表示式3(迴圈變數增量)」均可以預設,但「;」不能預設。

省略了「表示式1(迴圈變數初始化)」,表示不對迴圈控制變數賦初值。

省略了「表示式2(迴圈條件)」則不做其他處理時,變成為死迴圈。

省略了「表示式3(迴圈變數增量)」,則不對迴圈控制變數進行操作,這時可以在迴圈體中加入修改迴圈控制變數的語句。

在for迴圈的3個表示式中,不僅可以是乙個簡單表示式,也可以是逗號表示式。

goto語句是一種無條件跳轉語句。使用格式是:

goto 語句標號;

其中語句標號是乙個有效的識別符號,這個識別符號加上「:」一起出現在函式的某處,執行goto語句後,程式將跳轉到該語句標號處並執行其後的語句。

tip:

語句標號必須和goto語句處於同乙個函式中,但可以不在乙個迴圈層次中。

通常goto語句和if條件語句連用,當滿足某一條件時,程式跳轉到語句標號處執行。

但是,在實際開發中,一般不使用goto語句,因為它將使程式層次不清,且不易讀。但在多層巢狀退出時,用goto語句比較合理。

四種迴圈方式都可以用來處理同乙個問題,一般可以互相代替。但一般不建議使用goto。

while和do—while迴圈,迴圈體中應該包括使迴圈趨於結束的語句,for語句的功能最強。

用while和do-while時,迴圈變數初始化的操作應該在while和do-while語句之前完成,而for語句可以在表示式1中實現迴圈變數的初始化。

結構化程式設計

結構化程式設計方法的主要原則可以概括為自頂向下,逐步求精,模組化,限制使用goto語句。1 自頂向下 程式設計時,應先考慮總體,後考慮細節 先考慮全域性目標,後考慮區域性目標。不要一開始就過多追求眾多的細節,先從最上層總目標開始設計,逐步使問題具體化。2 逐步求精 對複雜問題,應設計一些子目標作為過...

結構化程式設計 分支結構

pl sql 提供了if else end if語句來處理分支 如下 使用分支結構為員工加薪 declare 定義加薪比例 c manager constant number 0.15 c salesman constant number 0.12 c clerk constant number 0...

結構化程式設計方法

結構化程式設計由迪克斯特拉 e.w.dijkstra 在1969年提出,是以模組化設計為中心,將待開發的軟體系統劃分為若干個相互獨立的模組,這樣使完成每乙個模組的工作變單純而明確,為設計一些較大的軟體打下了良好的基礎。基本要點 採用自頂向下,逐步求精的程式設計方法 使用三種基本控制結構構造程式 任何...