三、表达式和条件结构
表达式:
符号与操作数的组合
1.赋值运算符
单等号 =
计算顺序:从右往左
i += 1➡️ i = i + 1
i *= 1➡️ i = i * 1
2.关系运算符
>
、<
、==
>=
、<=
、!=
int main()
{
cout << boolalpha;//输出的时候True不会输出1而会输出True
cout << "15 > 35吗?" << (15 > 35) << endl;
cout << "15 < 25吗?" << (15 < 35) << endl;
return 0;
}
3.逻辑运算符
运算符 | 表达式 | 说明 |
---|---|---|
&& 并且 | 条件1 && 条件2 | 只有两个条件都是真时最后的结果才是真 |
||或 | 条件1 || 条件2 | 两个条件只要有一个条件成立就成立 |
!非 | ! 条件 | 就是取反的意思 真变成假 假变成真 |
4.位运算符
-
将数字转化为2进制,然后再进行运算
-
负数二进制转化为10进制的方法
- 将负数二进制取反
- 取反后加一
- 转化为10进制
- 加上负号
-
举例
11111101
- 取反:00000010
- 加一:00000011
- 转换:3
- 加负号:-3
5.sizeof运算符
- 获得数据类型所占用的内存空间的大小
- 结果以字节为单位 (1Byte == 8bit)
运算符优先级:
- 单目运算符 > 算数运算符 > 逻辑运算符 > 赋值运算符
三元运算符
int num = 5 > 6 ? 10 : 12;
//判断如果5>6为真就会返回10
//如果5>6为假,就会返回12
6.条件结构
if(条件为真)
{
//代码块1
}
else
{
//代码块2
}
int main()
{
//使用程序判断用户输入的字符是否是合法的硬盘盘符
char pan = '\0'//默认设置为空字符
cout << "请输入一个字符,我来判断是否合法";
cin >> pan;
//pan 的范围在'A'~'Z'之间
if(pan >= 'A' && pan <= 'Z')
{
cout << "这是合法的盘符" << endl;
}
else
{
cout << "这是不合法的盘符,请重新输入" << endl;
}
}
- 初学时,能定义多少变量,就定义多少变量
7.多重if结构
int main()
{
double flowerPrice;//花的单价
//打印剧情
cout <<"黎明前的黑暗渐渐褪去,海天之间透露着一抹亮光,像是点燃的火把......" << endl;
cout << "小男生给小女生送花,小女生问:这花多钱吖" << endl;
cout << "小男生:";
cin >> flowerPrice;
if(flowPrice >= 5000){
cout << "直接去领证" << endl;
}else if(flowPrice <5000 && flowPrice >=3000){
cout << "今天去heiheihei" << endl;
}else{
cout << "拜拜" << endl;
}
return 0;
}
8.switch结构
switch(表达式)
{
case 常量1:
语句1;
break;
case 常量2:
语句1;
break;
......
default:
语句;
}
switch:
swithch后的表达式只能是整型或字符型(不能是变量)case:
- case后的表达式的值不能相同
- case后允许多条语句,不需要大括号
- 如果不添加break语句,需要特别注意执行顺序
default:
- case和default句子的先后顺序可以自行变动
- default可以省略
break:
- 跳出,退出这个结构
- 如果有多个case语句,中间没有break语句,那么就会依次挨着执行这些case语句
int main()
{
int choice;
cin >> choice;
switch(choice){
case 1:
cout << "我选择老师" << endl;
case 2:
cout << "我选择程序员" << endl;
case 3:
cout << "12345" << endl;
default:
cout << "666" << endl;
}