第3课: 运算符与表达式
算术运算符
| 运算符 |
描述 |
示例 |
| + |
加法 |
5 + 3 = 8 |
| - |
减法 |
5 - 3 = 2 |
| * |
乘法 |
5 * 3 = 15 |
| / |
除法 |
5 / 3 = 1(整数除法) |
| % |
取模(余数) |
5 % 3 = 2 |
| ++ |
自增 |
x++ 或 ++x |
| -- |
自减 |
x-- 或 --x |
#include <iostream>
using namespace std;
int main() {
int a = 10, b = 3;
cout << "a + b = " << (a + b) << endl; // 13
cout << "a - b = " << (a - b) << endl; // 7
cout << "a * b = " << (a * b) << endl; // 30
cout << "a / b = " << (a / b) << endl; // 3
cout << "a % b = " << (a % b) << endl; // 1
// 自增自减
int x = 5;
cout << "x++ = " << x++ << endl; // 输出5,然后x变为6
cout << "++x = " << ++x << endl; // x先变为7,然后输出7
return 0;
}
关系运算符
| 运算符 |
描述 |
示例 |
| == |
等于 |
5 == 3 为 false |
| != |
不等于 |
5 != 3 为 true |
| > |
大于 |
5 > 3 为 true |
| < |
小于 |
5 < 3 为 false |
| >= |
大于等于 |
5 >= 5 为 true |
| <= |
小于等于 |
5 <= 3 为 false |
逻辑运算符
| 运算符 |
描述 |
示例 |
| && |
逻辑与 |
true && false = false |
| || |
逻辑或 |
true || false = true |
| ! |
逻辑非 |
!true = false |
#include <iostream>
using namespace std;
int main() {
int age = 20;
bool hasLicense = true;
// 逻辑与:两个条件都为真
if (age >= 18 && hasLicense) {
cout << "可以开车" << endl;
}
// 逻辑或:至少一个条件为真
if (age < 18 || !hasLicense) {
cout << "不能开车" << endl;
}
// 逻辑非:取反
if (!(age < 18)) {
cout << "已成年" << endl;
}
return 0;
}
赋值运算符
#include <iostream>
using namespace std;
int main() {
int x = 10;
x += 5; // 等同于 x = x + 5,结果为15
x -= 3; // 等同于 x = x - 3,结果为12
x *= 2; // 等同于 x = x * 2,结果为24
x /= 4; // 等同于 x = x / 4,结果为6
x %= 4; // 等同于 x = x % 4,结果为2
cout << "最终结果:" << x << endl;
return 0;
}
位运算符
| 运算符 |
描述 |
示例 |
| & |
按位与 |
5 & 3 = 1 |
| | |
按位或 |
5 | 3 = 7 |
| ^ |
按位异或 |
5 ^ 3 = 6 |
| ~ |
按位取反 |
~5 = -6 |
| << |
左移 |
5 << 1 = 10 |
| >> |
右移 |
5 >> 1 = 2 |
三元运算符
#include <iostream>
using namespace std;
int main() {
int a = 10, b = 20;
// 条件 ? 表达式1 : 表达式2
int max = (a > b) ? a : b;
cout << "最大值:" << max << endl;
// 等同于
int max2;
if (a > b) {
max2 = a;
} else {
max2 = b;
}
return 0;
}
运算符优先级
从高到低:
- 括号 ()
- 自增自减 ++ --
- 乘除取模 * / %
- 加减 + -
- 关系运算符 < <= > >=
- 相等运算符 == !=
- 逻辑与 &&
- 逻辑或 ||
- 赋值运算符 = += -= 等
练习题
- 编写程序计算两个数的四则运算结果
- 判断一个数是奇数还是偶数(使用%运算符)
- 使用三元运算符找出三个数中的最大值
- 编写程序判断一个年份是否为闰年