本次學習主要學習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...