if else 逻辑关系问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了if else 逻辑关系问题相关的知识,希望对你有一定的参考价值。
不加花括号的情况,if(条件1)if(条件2)A;B;这种情况下因为没有加花括号所以第二个if找到第一条A语句结束的分号作为他控制的语句,那第一个if也是一直找,找到A后面的分号就把if(条件2)和A视为受他控制的语句吗?
如果改成if(条件1)if(条件2)A;elseB;按照不加花括号只能控制他下面的第一条语句这个原则第一个if和第二个if都是控制到A后面的分号结束,后面的else控制到B后面的分号结束,但实际上是第一个if控制到了B后面那个分号结束,不是不加花括号只找到他后面的第一个分号为止作为受他控制的语句吗,这样就自相矛盾了吧。
if的作用域是紧跟在if后的大括号内的内容。如果没有大括号,if的作用域是紧跟在if后的第一条语句,以分号结束。
else紧跟在最近的if的作用域后,和此if形成搭配。
if(condition 1)if(condition 2)
A;
else
B;
等价于
if(condition 1)if(condition 2)
A;
else
B;
else和第二个if搭配,都属于第一个if的作用域。
是不是可以理解成加了else第一个if的作用域就扩大到else后的第一条语句那个分号为止
追答如果if后紧跟有else,else就和此if是一体的,if部分+else部分属于一条语句。
追问if(条件1)
elseif(条件2)B;和
if(条件1)
else
if(条件2)
B;
就是else后紧跟if和把他们俩分开写编译程序也会理解成if是else里的嵌套条件判断并且这个else是跟前面最近的没有else对应的if条件1对应吗?就等于是编译器是自动加了括号。
if(条件1)
else
if(条件2)
B;
这样加括号理解得对吗?
你写的这两条语句都不能通过编译,因为if后没有跟表达式(需要在if中执行的内容)。
追问不能理解成if后不需要执行任何操作吗?
追答不可以,if后必须有表达式,如果你不需要执行任何操作可以使用一对空的大括号。
追问else if 这个格式是不是相当于else 里面嵌套了个if,然后不加花括号的话这个if只控制他后面的第一条语句,其他语句视为在这个else框架外的?如果这个else if后面还有else,那这个else就相当于是只给前面那个嵌套的if条件进行取反,不会管其他的条件,只对他配对的条件进行取反。 如果没有加大括号的话比如if(1)if(2)A;B;C;else if(3)D;这个else能越过前面的A,B,C找到if(2)来配对吗?
追答else if就是else if,和else同级,相当于带条件的else。
参考技术A 你好不管是if还是else还是else if都是条件判断,不过是用法不同其实是一个意思。
if后面跟表达式,你看上面每一个if后面都跟了个表达式吧,例如if(a>c),而else后面就不需要跟表达式,你看上面哪个else 后面跟表达式了,else if跟if相同不过就是需要跟在if后面,if...else if,而不能else if......if,说白了就是if和else if一样不过是要分个先
满意请采纳追问
if(条件1)
if(条件2)A;
else
if(条件3)B;
上面的是否等价于if(条件1)
if(条件2)A;
elseif(条件3)B;
就是把elseif(条件3)B;分开写成else
if(条件3)
B;
if循环判断
if循环判断
if-else循环的语法格式
if 逻辑判断句:
? 代码块 # 缩进表示所属关系
else 逻辑判断句:
? 代码块
if 和elif同时使用来做多层判断
if 逻辑判断式:
代码块
elif 逻辑判断式:
? 代码块
if的嵌套使用
在if判断句中可以继续加入if的判断模块
例:if 逻辑判断1:
? 代码块
? if 逻辑判断2:
? 代码块
? else2:
? 代码块
? else1:
? 代码块
循环控制的两种方式
while循环
语法
- while + break
- while + continue
语法:
while 条件:
? 代码块
while + break:break的意思是终止程序代码,终止的是当前层次的循环
while + continue continue用来跳出当前循环
2 while循环的的嵌套,while循环的嵌套和if循环嵌套一样,在while逻辑中可以继续加入一套while循环逻辑
3 tag控制循环退出
tag被令为True,来控制循环
4 whil + else 当while没有被break的时候,else代码块方会被执行
for循环
for语法
- for + break 退出本层循环
- for + continue 退出当前循环
for循环嵌套
for 循环嵌套语法
for 逻辑判断式:
? 代码块
for + else语法
- 当for循环没有被break时,才会执行else内部的代码
for-elif循环实现猜年龄
age = 10 age_guess = int(input('猜吧猜吧,赶紧的‘)) if age_guess == age: print('猜的准啊,老弟') elif age_guess > age: print('猜大了') elif: print('猜小了')
while循环嵌套
age = 10 reward_list = ['baby_list1', 'baby_list2', 'baby_list_3'] while True: age_guess = int(input('请输入你猜的数值')) if age_guess == age: while True: print('猜对了,可以选择一个奖励') print(reward_list) reward_choice = int(input('请输入你想要奖品的序号')) if reward_choice > len(reward_list): print('no no no,please choise again') else: print(f'你选择的奖励是{reward_list[reward_choice]}') break # break elif age_guess != age: print('输入的是什么jb,GUN')
for + continue/break
game_list = ['chi', 'he', 'piao', 'du', 'dabaojian'] for i in game_list: if i == 'piao': # continue break print(i)
以上是关于if else 逻辑关系问题的主要内容,如果未能解决你的问题,请参考以下文章