1368 字
7 分钟
1.3运算符
作用:用于执行代码的运算
本章我们主要讲解以下几类运算符:
| 运算符类型 | 作用 |
|---|---|
| 算术运算符 | 用于处理四则运算 |
| 赋值运算符 | 用于将表达式的值赋给变量 |
| 比较运算符 | 用于表达式的比较,并返回一个真值或假值 |
| 逻辑运算符 | 用于根据表达式的值返回真值或假值 |
3.1 算术运算符
作用:用于处理四则运算
算术运算符包括以下符号:
| 运算符 | 术语 | 示例 | 结果 |
|---|---|---|---|
| + | 正号 | +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: 加减乘除:
#include<iostream>
int main() {
int a1 = 10; int b1 = 3;
std::cout << a1 + b1 << std::endl; std::cout << a1 - b1 << std::endl; std::cout << a1 * b1 << std::endl; std::cout << a1 / b1 << std::endl; //两个整数相除结果依然是整数
int a2 = 10; int b2 = 20; std::cout << a2 / b2 << std::endl;
int a3 = 10; int b3 = 0; //std::cout << a3 / b3 << std::endl; //报错,除数不可以为0
//两个小数可以相除 double d1 = 0.5; double d2 = 0.25; std::cout << d1 / d2 << std::endl;
return 0;}总结:在除法运算中,除数不能为0
示例2: 取模:
#include<iostream>
int main() {
// 取模运算本质 求余数 int a1 = 10; int b1 = 3;
std::cout << 10 % 3 << std::endl;
int a2 = 10; int b2 = 20;
std::cout << a2 % b2 << std::endl;
int a3 = 10; int b3 = 0;
//std::cout << a3 % b3 << std::endl; //取模运算时,除数也不能为0
//两个小数不可以取模 double d1 = 3.14; double d2 = 1.1;
//std::cout << d1 % d2 << std::endl;
return 0;}总结:只有整型变量可以进行取模运算
示例3:递增:
#include<iostream>
int main() {
//前置递增 int a = 10; ++a; std::cout << a << std::endl; // 11
//后置递增 int b = 10; b++; //等价于b = b + 1 std::cout << b << std::endl; // 11
//区别 //前置递增先对变量进行++,再计算表达式 int a2 = 10; int b2 = ++a2 * 10; std::cout << a2 << std::endl; std::cout << b2 << std::endl;
//后置递增先计算表达式,后对变量进行++ int a3 = 10; int b3 = a3++ * 10; std::cout << a3 << std::endl; std::cout << b3 << std::endl;
return 0;}总结:前置递增先对变量进行++,再计算表达式,后置递增相反
3.2 赋值运算符
作用:用于将表达式的值赋给变量
赋值运算符包括以下几个符号:
| 运算符 | 术语 | 示例 | 结果 |
|---|---|---|---|
| = | 赋值 | 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; |
示例:
#include<iostream>
int main() {
//赋值运算符
// = int a = 10; a = 100; std::cout << "a = " << a << std::endl;
// += a = 10; a += 2; // a = a + 2; std::cout << "a = " << a << std::endl;
// -= a = 10; a -= 2; // a = a - 2 std::cout << "a = " << a << std::endl;
// *= a = 10; a *= 2; // a = a * 2 std::cout << "a = " << a << std::endl;
// /= a = 10; a /= 2; // a = a / 2; std::cout << "a = " << a << std::endl;
// %= a = 10; a %= 2; // a = a % 2; std::cout << "a = " << a << std::endl;
return 0;}3.3 比较运算符
作用:用于表达式的比较,并返回一个真值或假值
比较运算符有以下符号:
| 运算符 | 术语 | 示例 | 结果 |
|---|---|---|---|
| == | 相等于 | 4 == 3 | 0 |
| != | 不等于 | 4 != 3 | 1 |
| < | 小于 | 4 < 3 | 0 |
| > | 大于 | 4 > 3 | 1 |
| <= | 小于等于 | 4 <= 3 | 0 |
| >= | 大于等于 | 4 >= 1 | 1 |
示例:
#include<iostream>
int main() {
// 比较运算符 int a = 10; int b = 20;
// == std::cout << (a == b) << std::endl; // 0
// != std::cout << (a != b) << std::endl; // 1
// > std::cout << (a > b) << std::endl; // 0
// < std::cout << (a < b) << std::endl; // 1
// >= std::cout << (a >= b) << std::endl; // 0
// <= std::cout << (a <= b) << std::endl; // 1
return 0;}注意:C和C++ 语言的比较运算中,
“真”用数字“1”来表示, “假”用数字“0”来表示。
3.4 逻辑运算符
作用:用于根据表达式的值返回真值或假值
逻辑运算符有以下符号:
| 运算符 | 术语 | 示例 | 结果 |
|---|---|---|---|
| ! | 非 | !a | 如果a为假,则!a为真; 如果a为真,则!a为假。 |
| && | 与 | a && b | 如果a和b都为真,则结果为真,否则为假。 |
| || | 或 | a || b | 如果a和b有一个为真,则结果为真,二者都为假时,结果为假。 |
示例1:逻辑非
#include<iostream>
int main() {
//逻辑运算符 --- 非 ! int a = 10;
// C++ 中除了0全是真 std::cout << !a << std::endl; // 0
std::cout << !!a << std::endl; // 1
return 0;}总结: 真变假,假变真
示例2:逻辑与
#include<iostream>
int main() {
//逻辑运算符 --- 与 && int a = 10; int b = 10;
std::cout << (a && b) << std::endl;// 1
a = 10; b = 0;
std::cout << (a && b) << std::endl;// 0
a = 0; b = 0;
std::cout << (a && b) << std::endl;// 0
return 0;}总结:逻辑
与运算符总结: 同真为真,其余为假
示例3:逻辑或
#include<iostream>
int main() {
//逻辑运算符 --- 或 || int a = 10; int b = 10;
std::cout << (a || b) << std::endl;// 1
a = 10; b = 0;
std::cout << (a || b) << std::endl;// 1
a = 0; b = 0;
std::cout << (a || b) << std::endl;// 0
return 0;}逻辑或运算符总结: 同假为假,其余为真
