C++记录(3)
突然想先分享一首歌,以后再做记录之前都会分享我正在听的一首歌来表示开始吧
l saw you smile today,l almost forgot you faded away
if语句的应用
直接应用的有
if(ture)
{
//所要执行的内容
}
else(ture)
{
//所要执行的内容
}
例如
if (zhangsan_age > 18) cout << "张三是成年人" << endl;
if语句的嵌套应用
int zhangsan_age = 0, zhangsan_sex = 0;
cin >> zhangsan_age >> zhangsan_sex;
if (zhangsan_age < 18)
{
if (zhangsan_sex == 1)
{
cout << "张三是个男孩" << endl;
}
else if (zhangsan_sex == 2)
{
cout << "张三是个女孩" << endl;
}
}
else if (zhangsan_age >= 18)
{
if (zhangsan_sex == 1)
cout << "张三是个男青年" << endl;
else if (zhangsan_sex == 2)
cout << "张三是个女青年" << endl;
}
这样写很是麻烦,而且会嵌套了好几层,有没有更简便的写法呢?当然有了,就是使用逻辑运算符
if (zhangsan_age >= 1 && zhangsan_sex <= 18)
{
cout << "张三是个男孩" << endl;
}
这样就比较精简,也让代码清晰
下面列出逻辑运算符的Neo荣
C++中提供了三种逻辑运算符:
①、&& 逻辑与 相当于其他语言中的 AND
②、|| 逻辑或 相当于其他语言中的 OR
③、! 逻辑非 相当于其他语言中的 NOT
逻辑运算符的运算规则:
a 和 b 是表达式
- a && b 若 a 和 b 同时为真,a && b 的结果为真,只要有一个为假,则 a && b 的结果为假
- a || b 若 a 或 b 其一为真,a || b 的结果为真,若 a 和 b 同时为假,则 a || b 的结果为假
- !a 若 a 为真,则 !a 为假,若 a 为假,则 !a 的结果为真
举几个例子:
- 若 int x = 5; 则 !x 的值就是0,因为 x 的值是5,非0,所以是真,!x 就是假了,也就是0了;
- 若 int x = 5, y = 4; 那么 x && y 的结果就是真,int z = x && y; 你会发现 z 的值是1;
- 若 int x = 5, y = 4; 那么 !x || y 的结果是什么呢,这里涉及到运算符优先级,可以看我前面记录,这里的结果是先算逻辑非(!)再算逻辑或(||) 所以结果是真
冒号表达式
表达式1?表达式2:表达式3
若表达式1为真,则返回表达式2的值,若表达式1为假,则返回表达式3的值,
max = x > y ? x : y;
swich表达式的使用
具体使用格式如下
switch(表达式)
{
case 常量表达式1:语句1
break;
case 常量表达式2:语句2
break;
case 常量表达式3:语句3
break;
…
case 常量表达式n语句n
break;
default:语句n+1;
break;
}
格式说明:
①、switch后面括号内的表达式必须是数值类型(包括字符类型)的数据,不能使用字符串;
②、如果switch表达式的值与某一个case子句中的常量表达式的值匹配时,就执行此case子句中的内嵌语句,如果所有的case常量表达式都不匹配,那么就执行default子句的内嵌语句;
③、每个case标签的常量表达式的值必须不能相同,否则会出现错误的情况,而且以当前vs2013的编译器来说编译也会不通过的;
④、每个case语句,包括default语句的顺序不影响结果,可以任意放置,比如把default放在上面也是一样的;
⑤、switch语句也是本着从上往下的顺序执行,可这个从上往下是以第一个case匹配到的常量表达式开始,往下执行。如果执行完一个case语句之后不想继续执行其他case语句可以使用break关键字跳出switch结构即可;
#include <iostream>
using namespace std;
int main()
{
cout << "请输入一个数字:" << endl;
int num = 0;
cin >> num;
switch (num)
{
case 1:
cout << "今天是星期一" << endl;
break;
case 2:
cout << "今天是星期二" << endl;
break;
case 3:
cout << "今天是星期三" << endl;
break;
case 4:
cout << "今天是星期四" << endl;
break;
case 5:
cout << "今天是星期五" << endl;
break;
default:
cout << "今天是周末" << endl;
break;
}
return 0
}