and && or ||操作符问题

浏览:2093 发布日期:2017-11-03 02:59:17

and与&& 意思是相同的,只是前者优先级很低

alien = true

speaks_english = false

alien and speaks_english => false

alien && speaks_english => false

alien and speaks_english ? 1 : 0 => 0

alien && speaks_english ? 1 : 0  => 0

speaks_english and alien ? 1 : 0 => false

# 由于and优先级极低,所以先计算右边的alien ? 1 : 0 => false的值,这样它最终返回false

speaks_english && alien ? 1 : 0 => 0

#它先计算speaks_english && alien

or与||,类似

不同之处在于,对于or来说,由于它优先级很低,所以两边语句都会执行,而||则不同,如果左边的为true,右边的语句不会执行