運算符
運算符
**作用:**用於執行代碼的運算
本章我們主要講解以下幾類運算符:
| 運算符類型 | 作用 |
|---|---|
| 算術運算符 | 用於處理四則運算 |
| 賦值運算符 | 用於將表達式的值賦給變量 |
| 比較運算符 | 用於表達式的比較,並返回一個真值或假值 |
| 邏輯運算符 | 用於根據表達式的值返回真值或假值 |
算術運算符
作用:用於處理四則運算
算術運算符包括以下符號:
| 運算符 | 術語 | 示例 | 結果 |
|---|---|---|---|
| + | 正號 | +3 | 3 |
| - | 負號 | -3 | -3 |
| + | 加 | 10 + 5 | 15 |
| - | 減 | 10 - 5 | 5 |
| * | 乘 | 10 * 5 | 50 |
| / | 除 | 10 / 5 | 2 |
| % | 取模(取餘) | 10 % 3 | 1 |
| ++ | 前置遞增 | a=2; b=++a; | a=3; b=3; |
| ++ | 後置遞增 | a=2; b=a++; | a=3; b=2; |
| -- | 前置遞減 | a=2; b=--a; | a=1; b=1; |
| -- | 後置遞減 | a=2; b=a--; | a=1; b=2; |
示例1:
//加减乘除
int main() {
int a1 = 10;
int b1 = 3;
cout << a1 + b1 << endl;
cout << a1 - b1 << endl;
cout << a1 * b1 << endl;
cout << a1 / b1 << endl; //两个整数相除结果依然是整数
int a2 = 10;
int b2 = 20;
cout << a2 / b2 << endl;
int a3 = 10;
int b3 = 0;
//cout << a3 / b3 << endl; //报错,除数不可以为0
//两个小数可以相除
double d1 = 0.5;
double d2 = 0.25;
cout << d1 / d2 << endl;
return 0;
}
運行/觀察結果: 運行後會按輸出語句打印對應內容,變量值可結合初始化、賦值和函數調用順序推導。
總結:在除法運算中,除數不能為0
示例2:
//取模
int main() {
int a1 = 10;
int b1 = 3;
cout << 10 % 3 << endl;
int a2 = 10;
int b2 = 20;
cout << a2 % b2 << endl;
int a3 = 10;
int b3 = 0;
//cout << a3 % b3 << endl; //取模运算时,除数也不能为0
//两个小数不可以取模
double d1 = 3.14;
double d2 = 1.1;
//cout << d1 % d2 << endl;
return 0;
}
運行/觀察結果: 運行後會按輸出語句打印對應內容,變量值可結合初始化、賦值和函數調用順序推導。
總結:只有整型變量可以進行取模運算
示例3:
//递增
int main() {
//后置递增
int a = 10;
a++; //等价于a = a + 1
cout << a << endl; // 11
//前置递增
int b = 10;
++b;
cout << b << endl; // 11
//区别
//前置递增先对变量进行++,再计算表达式
int a2 = 10;
int b2 = ++a2 * 10;
cout << b2 << endl;
//后置递增先计算表达式,后对变量进行++
int a3 = 10;
int b3 = a3++ * 10;
cout << b3 << endl;
return 0;
}
運行/觀察結果: 運行後會按輸出語句打印對應內容,變量值可結合初始化、賦值和函數調用順序推導。
總結:前置遞增先對變量進行++,再計算表達式,後置遞增相反
賦值運算符
**作用:**用於將表達式的值賦給變量
賦值運算符包括以下幾個符號:
| 運算符 | 術語 | 示例 | 結果 |
|---|---|---|---|
| = | 賦值 | a=2; b=3; | a=2; b=3; |
| += | 加等於 | a=0; a+=2; | a=2; |
| -= | 減等於 | a=5; a-=3; | a=2; |
| *= | 乘等於 | a=2; a*=2; | a=4; |
| /= | 除等於 | a=4; a/=2; | a=2; |
| %= | 模等於 | a=3; a%2; | a=1; |
示例:
int main() {
//赋值运算符
// =
int a = 10;
a = 100;
cout << "a = " << a << endl;
// +=
a = 10;
a += 2; // a = a + 2;
cout << "a = " << a << endl;
// -=
a = 10;
a -= 2; // a = a - 2
cout << "a = " << a << endl;
// *=
a = 10;
a *= 2; // a = a * 2
cout << "a = " << a << endl;
// /=
a = 10;
a /= 2; // a = a / 2;
cout << "a = " << a << endl;
// %=
a = 10;
a %= 2; // a = a % 2;
cout << "a = " << a << endl;
return 0;
}
運行/觀察結果: 運行後會按輸出語句打印對應內容,變量值可結合初始化、賦值和函數調用順序推導。
比較運算符
**作用:**用於表達式的比較,並返回一個真值或假值
比較運算符有以下符號:
| 運算符 | 術語 | 示例 | 結果 |
|---|---|---|---|
| == | 相等於 | 4 == 3 | 0 |
| != | 不等於 | 4 != 3 | 1 |
| < | 小於 | 4 < 3 | 0 |
| > | 大於 | 4 > 3 | 1 |
| <= | 小於等於 | 4 <= 3 | 0 |
| >= | 大於等於 | 4 >= 1 | 1 |
示例:
int main() {
int a = 10;
int b = 20;
cout << (a == b) << endl; // 0
cout << (a != b) << endl; // 1
cout << (a > b) << endl; // 0
cout << (a < b) << endl; // 1
cout << (a >= b) << endl; // 0
cout << (a <= b) << endl; // 1
return 0;
}
運行/觀察結果: 運行後會按輸出語句打印對應內容,變量值可結合初始化、賦值和函數調用順序推導。
注意:C和C++ 語言的比較運算中, ==“真”用數字“1”來表示, “假”用數字“0”來表示。==
邏輯運算符
**作用:**用於根據表達式的值返回真值或假值
邏輯運算符有以下符號:
| 運算符 | 術語 | 示例 | 結果 |
|---|---|---|---|
| ! | 非 | !a | 如果a為假,則!a為真; 如果a為真,則!a為假。 |
| && | 與 | a && b | 如果a和b都為真,則結果為真,否則為假。 |
| || | 或 | a || b | 如果a和b有一個為真,則結果為真,二者都為假時,結果為假。 |
**示例1:**邏輯非
//逻辑运算符 --- 非
int main() {
int a = 10;
cout << !a << endl; // 0
cout << !!a << endl; // 1
return 0;
}
運行/觀察結果: 運行後會按輸出語句打印對應內容,變量值可結合初始化、賦值和函數調用順序推導。
總結: 真變假,假變真
**示例2:**邏輯與
//逻辑运算符 --- 与
int main() {
int a = 10;
int b = 10;
cout << (a && b) << endl;// 1
a = 10;
b = 0;
cout << (a && b) << endl;// 0
a = 0;
b = 0;
cout << (a && b) << endl;// 0
return 0;
}
運行/觀察結果: 運行後會按輸出語句打印對應內容,變量值可結合初始化、賦值和函數調用順序推導。
總結:邏輯==與==運算符總結: ==同真為真,其餘為假==
**示例3:**邏輯或
//逻辑运算符 --- 或
int main() {
int a = 10;
int b = 10;
cout << (a || b) << endl;// 1
a = 10;
b = 0;
cout << (a || b) << endl;// 1
a = 0;
b = 0;
cout << (a || b) << endl;// 0
return 0;
}
運行/觀察結果: 運行後會按輸出語句打印對應內容,變量值可結合初始化、賦值和函數調用順序推導。
邏輯==或==運算符總結: ==同假為假,其餘為真==