银狼的python课堂第四集

螺丝咕姆的C艹课堂开课了!第三课 if判断 逻辑运算
开拓任务 if判断,逻辑运算 开始
在编程中,经常会遇到判断的地方,这个时候,我们就要请出非常厉害的if了
在学习if之前,我们要先明白逻辑运算符,和布尔值
布尔值一共就只有2个
分为true和false,咱们一个一个讲
True,也可以写成true,1,(3种写法都为正确),也就是真,正确的,可以理解为通过
False,也可以写成false,0(3种写法都为正确),也就是假,错误的,可以理解为停止。
布尔值有一个很神奇的地方,也就是数字也可以代表布尔值,像下面这些例子,都不会报错
bool n = 1;
代表n这个变量现在值为true
int n = 1;
代表n这个变量值为1
这个时候,布尔值的一个特性来了,就是如果你把int类型的n,去做逻辑运算,系统会默认你这个int类型的1为true
既然我们了解了布尔值的作用,那就来看看逻辑运算符吧逻辑运算符目前阶段我们能用到的有
`>`大于号,a>b,这个时候,如果a大于b,将会返回true,如果a小于b,就会返回false
`<`小于号,a<b,这个时候,如果a小于b,将会返回true,如果a大于b,就会返回false
`==`,这个符号是用来判断2边是否相等的,如果相等,则返回true,不相等返回false,需要注意的是,==不光可以判断2个数或者字符或者字符串的相同,也可以用布尔值判断,比如说,true==false,明显是不对的,所以返回false,但是不要以为,false==false总是true了吧,你要记住,布尔值判断的时候,依然是false,但如果是2个字符串,可能就是true了。所以==布尔值判断记住,一边为false,直接为false,2边都为true,才为true
`!=`,这个符号是用来判断2边是否不一样,如果左边和右边不相等,则返回true,否则返回false,布尔值判断只有true!=false和false!=true能返回true,其余的不行
大于和小于分别有一个>= <=,也就是说,如果a大于或者等于b,则返回true,否则返回false,<=同理
if判断
if语句用于判断这个逻辑表达式是否为true,如果为true,则执行if中的代码,如果为false,就直接跳过if语句中的代码,继续执行后面的代码
框架如下
if (判断语句){
执行的代码;
}
举个例子
int a = 34,b = 0;
if (a >= b){
cout << a;
}
这个代码输出的就是a的值,也就是34
else
在if中,可以开出一个分支,称谓else,else的意思是否则,if是如果,也就很好理解了,如果if判断失败了,写了else的话,会直接执行else中的代码
例子如下
int a = 34,b = 10086;
if (a > b){
cout << a;
}
else{
cout << b;
}
这个时候就不会输出a了,也不后悔直接结束,而是输出b,因为if判断失败 ,程序走向else,但是else里面是cout << b;所以直接输出b。
需要注意的是,没有if的时候,是不可以单独写else的,如果你非要写,运行会发现一句很好的话:[Error] 'else' without a previous 'if'(看不懂的去度娘)
Python else
不得不说,某狼貌似没讲else,偷偷告诉你们,Python中,else的功能完全一样,注意事项也一样,只需要这么写,如下
a = 34
b = 10086
if a > b:
print(a)
else:
print(b)
会输出b的值哦~
else if
到这里就不得不说一句了,隔壁银狼讲Python貌似没讲elif,那我就帮你讲了~
elif
Python中,elif是加在if和else中间的,也算是一个缝合怪,elif就是else if,否则如果的意思,用于if语句失败,如果有elif,将会走向elif,如果elif为true,则执行完elif的语句后,跳过else,和多余的elif,直接走向后面的语句,例子如下
a = 34
b = 10086
if a > b:
print(a)
elif a < b:
print(b)
else:
print(b-a)
这里,会输出b得值,然后跳过else,执行接下来的语句
但如果elif的结果还是false,也会执行接下来的else
需要注意的是,没有if,同样也不能有elif,否则一样报错~
else if
定义和Python一毛一样,注意事项也是,具体例子如下
int a = 34;
int b = 10086;
if (a > b){
cout << a;
}
else if (a < b){
cout << b;
}
else {
cout << b-a;
}
输出的是b的值
需要注意的是,else和else if(elif)都需要if,不可以单写,但是有if,有else if(elif)没有else可以吗?可以的,可以在加多个else if(elif)吗?可以的,
一个小特性,C艹专用
如果你的if,elseif,else中只有一行执行语句,可以不加大括号哦~,例子如下
int a = 34;
int b = 10086;
if (a > b)
cout << a;
else if (a < b)
cout << b;
else
cout << b-a;
这样写是没有问题的,但是推荐是加上大括号,这样复杂的代码会让找bug的你更舒服,当然像上面那种简单的代码,不加也行。
有人会问
int a = 34;
int b = 10086;
if (a > b){
cout << a;
}
else if (a < b)
cout << b;
else
cout << b-a;
我一个加,其他不加可以吗? 答案是可以的,else,else if同理
要记住,如果只有一句执行语句,才可以不加大括号,当语句>=2的时候就必须加了,而且大括号不影响程序运行,不用担心
int a = 34;
int b = 10086;
if (a > b){
cout << a;
cout <<"螺丝咕姆真聪明!!!";}
else if (a < b)
cout << b;
else
cout << b-a;
上面这种写法是不影响程序运行的~,不要怀疑大括号的位置,只要前大括号在判断后面那个括号的后面,执行语句中执的前面,后大括号在执行语句分号的后面,下一行代码的下前面,或者else ,else if,e的前面,就不算错
if (判断)
执行语句;
下一行代码;
else
else if
今天的课上到这里就结束了~,下课
开拓任务 if判断,逻辑运算 结束
接受任务 课后练习3
请各位开拓者写一个年龄判断程序,要求要用户输入自己的年龄,
年龄
≤
100
年龄≤100,如果小于18输出:-18,如果大于等于18输出:18+,否则输出:EROOR