學習内容如下:
- BOOL類型
- 關系運算符
- 邏輯運算符
- if else
- switch case
其中最重要的是if語句,應用範圍廣,使用頻率也高。
一.BOOL類型:
BOOL是表示非真即假的資料類型,占記憶體中一個位元組,存儲的資料為YES和NO,
YES = 1,NO = 0;
二.關系運算符
operator | name |
---|---|
| 大于 |
| 小于 |
| 等于 |
| 大于等于 |
| 小于等于 |
| 不等于 |
關系運算符組成的式子為關系表達式,其結果為BOOL類型的資料
例子:
- 輸出兩個數中較大的一個
int a = , b = , max = ;
printf("please enter two numbers\n");
scanf("%d%d", &a, &b);
max = a > b ? a : b;
printf("max = %d\n", max);
- 輸出三個數中較大的一個
int a = , b = , c = , max = ;
printf("please enter three numbers\n");
scanf("%d%d%d",&a, &b, &c);
max = a > b ? a : b;
max = max > c ? max : c;
printf("max = %d\n", max);
三.邏輯運算符
operator | name | result |
---|---|---|
| 邏輯與 | 邏輯與運算符兩端的表達式都為真,則為真,否則為假 |
| 邏輯或 | 邏輯或運算符兩端的表達式都為假,則為假 |
| 邏輯非 | 原有為真,非後為假。原有為假,非後為真 |
- 邏輯與運算
int a = , b = ;
BOOL result = (a > b) && (a < b);
printf("result = %d\n", result);
- 邏輯或運算
int a = , b = ;
BOOL result = (a > b) || (a < b);
printf("result = %d\n", result);
- 邏輯非運算
int a = , b = ;
BOOL result = !(a > b);
printf("result = %d\n", result);
- 邏輯運算的短路
-
邏輯與短路
左側表達式為假,右側不參與運算
int a = , b = , c = ; BOOL result = (a > b) && c++; printf("result = %d\n", result); printf("c = %d\n", c); result = ; c =
-
邏輯或短路
左側表達式為真,右側不參與運算
int a = , b = , c = ; BOOL result = (a < b) || c++; printf("c = %d\n", c); result = ; c =
-
四.if else
首先了解一下C語言的程式結構:
1. 順序結構:main函數是程式的主入口,程式從上至下,從左至右依次執行;
2. 分支結構:程式執行到某個位置,進行條件判斷,根據不同的結果,執行不同的操作;
3. 循環結構:程式執行到某個位置,重複執行某個操作;
if語句有三種表達形式:
if(條件表達式){
語句;
}
if(條件表達式){
語句;
} else {
語句;
}
if(條件表達式){
語句;
} else if(條件表達式){
語句;
} else {
語句;
}
五.switch case
int season = ;
printf("please enter a number between 1 and 4\n");
scanf("%d", &season);
switch (season) {
case :
printf("spring\n");
break;
case :
printf("summer\n");
break;
case :
printf("autumn\n");
break;
case :
printf("winter\n");
break;
default:
printf("please enter a number between 1 and 4\n");
break;
}
習題
- 判斷奇數還是偶數
int a = ;
printf("please enter a number\n");
scanf("%d", &a);
if(a % == ){
printf("this is an even number\n");
} else {
printf("this is an odd number\n");
}
- 從鍵盤輸入一個加減乘除的式子,輸出結果
float number1 = , number2 = , result = ;
char operator = ;
printf("please give me a formula like '1 + 1'\n");
scanf("%f%c%f", &number1, &operator, &number2);
switch (operator) {
case '+':
result = number1 + number2;
break;
case '-':
result = number1 - number2;
break;
case '*':
result = number1 * number2;
break;
case '/':
resulst = number1 / number2;
break;
default:
break;
}
printf("result = %f\n", result);
- 從鍵盤輸入字元,則輸出字元,從鍵盤輸入數字,則輸出數字
int a = ;
char b = ;
if(scanf("%d", &a)){
printf("%d\n", a);
} else if(scanf("%c", &b)){
printf("%c\n", b);
}