请问为什么 if 和 else 要匹配呀?

269 天前
 OwO233
如题,比如在 python 中,if 判断条件后,不需要 else 就可以执行下面的语句,为啥还要加个 else 啊?🤔如果需要判断多个条件,也可以直接使用 elif 判断后续条件,不是很理解 else 的用途,求教各位,if 后面加上 else 是为了代码规范还是对资源上会有更优的利用呀?
3623 次点击
所在节点    程序员
16 条回复
vituralfuture
269 天前
else 可以在条件不成立的时候多执行一段逻辑

举个例子,如果今天下雨就穿雨鞋,否则就穿运动鞋,穿完鞋之后出门

话说问这种问题,op 是初学编程?
OwO233
269 天前
@vituralfuture #1 是啊,想学习变成自己编写一些自动挂机脚本。
ohayoo
269 天前
if 可以单独存在,不一定要和 else 搭配,如果 condition 是 False ,else 下面的语句被执行。
换句话说,条件不成立的时,一定要干一件什么事情,则需要 else
OwO233
269 天前
@vituralfuture 感谢你的回复。
请问条件不成立不写 else 后面写一段语句一样可以执行,但是为什么需要写 else 呀?
OwO233
269 天前
我知道了,如果不加 else ,前面的 if 判断 true 后还会重复执行一遍,我刚开始逻辑出问题了…😥
ohayoo
269 天前
@OwO233 #4 [不写 else 后面写一段语句一样可以执行] 那样的话,和你的条件成不成立没有关系,反正会执行
zictos
269 天前
elif 也是要指定具体的条件的,而 else 是无需指定具体条件的,不满足前面的条件时就执行 else 里面的代码。如果不需要 else 也可以不用,可以只用 if 或者只用 if 加 elif
dsb2468
269 天前
python 没太研究过,不过如果是 C++,那则涉及到编译器优化的一些知识。

比如同样比较是否等于 1 ,if else 和 switch 在编译阶段就会体现出效率的不同:
https://blog.csdn.net/dsb2468/article/details/72635138
V2April
269 天前
else 是如果前面的 if 和 elif 都不满足,直接执行 else 里面的语句。但如果前面的 if 和 elif 有一个被满足,就不会执行。好比你老婆想吃水果了,她优先想吃草莓,但如果草莓没上市买两个苹果也可以。她给你编程:
'''
if 有草莓
买草莓
else
买苹果
end if
回家
'''
这样你总是会带一些水果回家。

如果编程:
'''
if 有草莓
买草莓
end if
回家
'''
那没有草莓你就会空手回家。

如果编程:
'''
if 有草莓
买草莓
end if
买苹果
回家
'''
那无论如何你都会买苹果回家。

当然你也可以写成
'''
if cond1
action1
elif not cond1
action2
endif
'''
elif not cond1 和 else 是一样的。但如果你有很多 if~elif~elif~elif......,你最后给一个 else 来兜住所有剩下情况,肯定比写一个 elif not cond1 and not cond2 and......要容易。而且 else 不会做任何判断,只是起兜底作用。有的时候你的 if 判断本身是一件耗资源的事,你用 elif 来代替 else 就很不划算了。
DOLLOR
268 天前
写在 else 里和 else 外的效果是不一样的。

if condition:
⬜⬜#下面这句是条件成立时执行
⬜⬜action1()
else:
⬜⬜#下面这句是条件不成立时执行
⬜⬜action2()
#下面这句无论条件成不成立都会执行
action3()
oliveira
268 天前
这个问题,你写个 Demo 运行一遍就知道了啊...
PrinceofInj
268 天前
想起了那个笑话:
老婆:去菜市场买些苹果,如果有卖西瓜的,买一个。
过了半小时,老公拿着一个苹果回家了
老婆:你怎么只买了一个苹果?
老公:碰上卖西瓜的了。
lisongeee
268 天前
python 很久不写了,不太熟悉了,来说一下 js 中的情况,按照你的说法

if(a){}else{} 可以换成 if(a){}{} 但实际上这也是正确的语法结构,看下面的语法结构



最后的 {} 是一个块级作用域语句,里面的内容会不管 if 的判断如何最后都会正常执行
EndlessMemory
268 天前
除了 if 情况下的,就使用 else ,有啥毛病吗
maotao456
268 天前
我现在写代码,在非必要情况下不用 else.

假设代码是这样

穿运动鞋
if 下雨 == true {
穿雨鞋
}

出门
jorkingwire
267 天前
为什么我看不懂了,是我的问题么

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1028518

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX