Download presentation
Presentation is loading. Please wait.
1
第四章 流程控制(一) if,if-else 與 switch
關係運算子 與 邏輯運算子 條件跳躍 if 與 if-else 條件運算子 ?: 巢狀 if 與 if-else 多重選擇 switch 程式觀摩
2
關係運算子 關係運算子用於 比較兩數的大小關係 > (大於) >= (大於或等於) < (小於)
關係運算子用於 比較兩數的大小關係 > (大於) >= (大於或等於) < (小於) <= (小於或等於) == (等於) != (不等於) 例 a > b 是一個關係運算式,其值是一個邏輯值(真或假),C語言通常用數值 0 代表假,1 代表真(只要不是 0 就視為真)
3
邏輯運算子 邏輯運算子是用於邏輯值的運算,大多用來組合各種比較的條件 ,結果為邏輯值 && 符號代表 AND (及) 運算
|| 符號代表 OR (或) 運算 ! 符號代表 NOT (非) 運算 例 a > b && b > c 是一個邏輯運算式
4
if 的語法 當程式中需檢查某種狀況或條件是否發生時,可使用 if 敘述來控制。語法如下: i f (判斷的條件) {
若條件成立(邏輯為真), 則進行某些處理 . }
5
if 敘述的流程圖
6
if 的用法 例如 if (n==0) { printf("n is zero"); }
用於判斷當 n 值為 0 時,印出 "n is zero" 的訊息
7
if else的語法 if-else 敘述通常用於根據某種條件是否滿足,而分別從事兩種不同的處理步驟。其語法如下: if (條件判斷) {
條件成立所進行的處理 } else 條件不成立所進行的處理
8
if else 敘述的流程圖
9
if else 的用法 例如 if (a>b) { printf("%d > %d", a, b); big=a; }
big=b;
10
條件運算子 ?: 語法如下: (條件判斷) ? 條件為真時的處理 : 條件為假時的處理
(條件判斷) ? 條件為真時的處理 : 條件為假時的處理 這個問號 ? 與冒號:是視為一體的,合起來構成一個運算子。 例如, (n==0) ? printf("is zero") : printf("is not zero");
11
【範例 4-4-1】 試使用條件運算子 ?:,求出某數的絕對值。 6 main() 7 { 8 float n, absn; 9
7 { float n, absn; 9 printf("Enter a number : "); scanf("%f",&n); absn = (n < 0) ? -n : n ; 13 printf("absolute value of %f is %f \n",n,absn); 15 }
12
巢狀 if 的流程圖
13
if else 多重選擇的流程圖
14
【範例 4-5-2】 試設計一個C程式,用 if else 敘述,判斷所輸入的整數是正數、負數或零。 8 int num; 9
10 printf("Enter an integer number : "); 11 scanf("%d",&num); 12 if (num > 0) printf("%d is positive\n",num); 14 else if (num < 0) printf("%d is negative\n",num); 16 else printf("%d is zero\n",num);
15
多重選擇 switch 的語法 switch (運算式值) { case 數值1 : 主體1; break; case 數值2 : 主體2;
case 數值n : 主體n; default : 其他主體; }
16
【範例 4-6-1】p1/2 將範例 4-5-4 改用 switch 敘述來完成。 6 main() 7 {
7 { 8 float num1, num2; 9 char ch; 10 11 printf("Enter number1 : "); 12 scanf("%f",&num1); 13 printf("Enter number2 : "); 14 scanf("%f",&num2); 15 getchar(); /* skip '\n' the Enter key pressed in scanf() */ 16 printf("Which operation ( + - * / ) ? "); ch = getchar();
17
【範例 4-6-1】p2/2 18 switch (ch) 19 { 20 case '+' :
19 { 20 case '+' : printf("%f + %f = %f \n",num1,num2,num1+num2); break; 23 case '-' : printf("%f - %f = %f \n",num1,num2,num1-num2); break; 26 case '*' : printf("%f * %f = %f \n",num1,num2,num1*num2); break; 29 case '/' : printf("%f / %f = %f \n",num1,num2,num1/num2); break; 32 default : printf("%c is an invalid operator\n",ch); break; }
18
程式觀摩【範例 4-7-1】 p1/2 設計一個程式來判斷所按下的鍵,是那一個功能鍵。
10 printf("Press a function key : "); 11 ch = getch(); 12 putchar('\n'); 13 if (ch == 0x00) { ch = getch(); printf("The key you pressed is a function key : ");
19
程式觀摩【範例 4-7-1】 p2/2 17 switch (ch) 18 { 19 case 0x3B : printf("F1");
break; 21 case 0x3C : printf("F2"); break; 23 case 0x48 : printf("UP"); break; 25 case 0x50 : printf("DOWN"); break; 27 case 0x4B : printf("LEFT"); break; 29 case 0x4D : printf("RIGHT"); break; 31 default : printf("CODE 00 %02X\n",ch); break; }
20
【範例 4-7-1】的輸出畫面 Press a function key : (press F1 key)
The key you pressed is a function key : F1 Press a function key : (press UP arrow key) The key you pressed is a function key : UP Press a function key : (press F9 key) The key you pressed is a function key : CODE 00 43 Press a function key : (press 'a' key) The key you pressed is a normal key : a
Similar presentations