3 运算符
**作用:**用于执行代码的计算
主要有一下几种运算符:
运算符类型 | 作用 |
---|---|
算术运算符 | 用于处理四则运算 |
赋值运算符 | 用于将表达式的值赋给变量 |
比较运算符 | 用于表达式的比较,返回一个真值或假值 |
逻辑运算符 | 用于根据表达式的值返回真值或假值 |
3.1 算术运算符
**作用:**用于处理四则运算
包括一下符号:
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
+ | 正数 | +3 | +3 |
- | 负数 | -4 | -4 |
+ | 加号 | 4+5 | 9 |
- | 减号 | 6-3 | 3 |
* | 乘号 | 6*7 | 42 |
/[^1] | 除号 | 94/7 | 13 |
% | 取模(取余) | 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 = 7;
cout<<a1 + b1 <<endl;
cout<<a1 - b1 <<endl;
cout<<a1 * b1 <<endl;
cout<<a1 / b1 <<endl; //这里为整除运算,结果也会为整数
float a2 ;
float b2 ;
cout<<"请输入两个浮点数"<<endl;
cin >> a2;
cin >> b2;
cout<< "a2除以b2的值为"<<a2 / b2<<endl; //这里是非整除
system("pause");
return(0);
}
- 取模运算本质就是取余数
- 两个小数之间不能做取模运算
前置递增与后置递增
- 前置,后置递增都是使变量进行加一的操作
- 前置递增:先对变量进行递增,再进行表达式运算
- 后置递增:先进行表达式的运算,再对变量递增
int main()
{
//前置运算
int a = 10;
int b = 3;
int r1 = ++a * b;
cout<<"r1="<< r1 <<endl;
//后置运算
int a2 = 10;
int b2 = 3;
int r2 = a2++ * b2;
cout<<"r2="<< r2 <<endl;
cout<<"a2="<<a2<<endl;
system("pause");
return(0);
}
-
我们不难发现,在上述代码运算过程中我们的”a”变量先被加1再参与到了运算之中,而我们的”a2”变量则是再运算结束后才被加1
3.2赋值运算符
**作用:**将表达式的值赋给变量
主要包括以下几个符号:
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
= | 赋值 | a=10 | a=10 |
+= | 加等于 | a=10 a+=2 | a=12 |
-= | 减等于 | a=10 a-=2 | a=8 |
*= | 乘等于 | a=10 a*=2 | a=20 |
/= | 除等于 | a=10 a/=2 | a=5 |
%= | 取模等于 | a=10 a%=2 | a=0 |
3.3 比较运算符
**作用:**用于比较表达式的真假,并返回一个真值或假值
主要有以下的符号:
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
== | 相等于 | 4 == 3 | 0 |
!= | 不等于 | 4 != 3 | 1 |
< | 小于 | 4 < 3 | 0 |
> | 大于 | 4 > 3 | 1 |
⇐ | 小于等于 | 4 ⇐ 3 | 0 |
>= | 大于等于 | 4 >= 3 | 1 |
tips:再代码中由于有优先级的影响,我们可以这么提升运算优先级 cout << (a == b)<< denl;
3.4 逻辑运算符
**作用:**用于根据表达式的值返回真值或假值
主要有以下符号:
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
! | 非 | !a | 如果a为假,则!a为真;如果a为真,则!a为假 |
&& | 与 | a&&b | 如果a和b都为真,则结果为真,否则为假 |
|| | 或 | a||b | 如果a和b中有一个为真,则结果为真,二者都为假的时候,结果为假 |
3.4.1 逻辑非
int main()
{
//逻辑非
int a= 10 ;
cout << !a << endl;
//运算结果为 0 (解释:在C++中,只要结果不为0,都视为真,故输出结果为假)
cout << !!a << endl;
//结果为1,取了两次反(从真变假再变真)
system("pause");
return(0);
}
总结:真变假,假变真
3.4.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 (假)
system("pause");
return(0);
}
总结: 同真为真,其余为假
3.4.3 逻辑或
int main()
{
//逻辑或
int a = 10;
int b = 10;
cout << (a||b)<<endl;
//结果为1
a = 0;
b = 10;
cout << (a||b)<<endl;
//结果仍为1
a=0;
b=0;
cout << (a||b)<<endl;
//结果为0
system("pause");
return(0);
}
总结: 同假为假,其余为真