C語言學習(四)判斷與分支

2021-09-10 06:24:45 字數 2500 閱讀 4843

本次學習主要學習c語言中的if語句,會介紹到關係運算,簡單的if else語句、if else的巢狀、級聯的if-else if語句以及switch語句,並且會介紹到if語句的常見錯誤。另外,還會通過一些例子進行if語句的程式設計練習。

1. 關係運算

計算兩個值之間的關係,叫做關係運算,關係運算子有如下幾種:

關係運算的結果:關係運算的結果只有兩種,要麼關係運算成立,結果為1;要麼關係運算不成立,結果為0。

優先順序:

① 關係運算子的優先順序比算術運算的低,但是比賦值運算高。

例如:printf(「%d\n」,7>=3+4);

輸出的結果是1,也就是對3+4的結果進行了與7的關係運算得到的是成立,最後輸出了1。表明算術運算優先順序高於關係系運算。

② 在所有的關係運算子中,==與!=的優先順序又更低一些,其他運算子則是從左到右。

2.if else語句

if(條件成立)

else

……如果括號中的條件成立則執行if括號中的語句,不成立則執行else後的語句

例1:找零計算器

分析:需要使用者輸入購買物品的金額以及紙幣的票面,進行找零的計算,除此之外要考慮判斷金額不足的情況,因此這裡也用到了判斷。所以在之前的例子上加入if語句既可。

if語句**如下:

if(amount>=price)

else

printf("金額不足");

完整**如下:

#includeint main()

else

printf("金額不足");

return 0;

}

除了上面的那種表示,也可以不帶{}

if(判斷)

語句1else

語句2語句3

這樣的寫法程式執行為:如果條件成立,執行語句1,不成立執行語句2,if else執行完成後再執行語句3,也就是說語句1是if的一部分,語句2是else的一部分,而語句3與判斷語句無關。

3.if else語句的巢狀

例2:找到三個數中最大的那乙個

演算法流程圖如下:

程式**如下:

#includeint main()

else

printf("max=%d\n",max);

return 0;

}

if else的匹配問題:else總是和最近的那個else進行配對,所以安全的程式設計方式是加{}。

4.級聯的if— else if語句

例3:乙個分段函式的表示

f(x)=-1;x<0

0;x-0

2x;x>0

**表示如下:

if(x<0)

f=-1;

else if(x=0)

f=0;

else

f=2*x;

5.if語句常見錯誤①忘了大括號,形式如下:

if(判斷)

語句1語句2

這時語句2即使進行了縮排,但實際不是if內的語句,會在if判斷後執行。

② if後面加分號

c語言要求每個語句後面都有分號,但是實際上if包含後面的語句或者大括號的內的語句;如果if的圓括號加了分號,則預設if判斷後沒有所需要執行的語句。

③ if的判斷中==與=

如果只有乙個=,這表示的是乙個賦值,而並不是乙個關係判斷。if只要求()裡面的值是0或者1,也就是進行乙個關係運算得到結果。

④ **風格

如果是if else後面只有乙個語句,可以不寫{},如果**比較複雜,一定要用{}

如果有{},裡面的部分需要進行縮排。

6.多路分支switch else語句

如果有多路分支,用多個else if語句會比較繁瑣,這裡就引入了switch else語句。

形式如下:

switch(控制表示式)

控制表示式只能是整數型別的結果。

例4:

#includeint main()

return 0;

}

break:

switch語句可以看做是一種跳轉,根據表示式判斷跳轉到相對的case處,在switch內部如果沒有break,執行完會順序執行下乙個case,一直到遇到break或者執行完整個switch。

C語言學習(四)函式

一 函式概念及基本特徵 也就是一段可以重複使用的 c語言本身自帶許多庫函式,當然我們也可以自己編輯函式。函式的乙個明顯特徵就是使用時帶括號 必要的話,括號中還要包含資料或變數,稱為引數 parameter 引數是函式需要處理的資料,例如 strlen str1 用來計算字串的長度,str1就是引數。...

c語言學習筆記四

結構體 復合型別和結構體 復合型別 示例 struct test sturuct 如果用這種復合型別來定義變數 示例 struct test stuructz1,z2 定義訪問結構體 include int main void z int x 3 z.x x z.y 4 printf z f f z...

c語言學習筆記四

結構體 復合型別和結構體 復合型別 示例 struct test sturuct 如果用這種復合型別來定義變數 示例 struct test stuructz1,z2 定義訪問結構體 include int main void z int x 3 z.x x z.y 4 printf z f f z...