原贴: 一个有技术的话题 (出处: 精易论坛)
引子: 说实话,对于对程序逻辑理解较深的程序员应该都能很快理解那段逻辑语句
但是,对于一个小白来说可能就是一头雾水
所以我打算结合图文,来给小白详细讲讲 或 和 且 这两个逻辑语句到底是怎么回事(个人理解,大佬绕路)
正文:
首先,我们需要知道 或 和 且 的基本用法
对于 有基础的人来说,基本用法应该并不难理解
且 : 且 两端的逻辑条件 必须 都为 真 才会返回 真,反之,有一个为 假 就 返回 假
或 : 或 两端的逻辑条件 有一个 为 真 就会返回真,都为假 则返回 假
然后我们来试试稍微套点娃
不难理解,两个 且 混合在一起的时候,就是要三个逻辑条件 都为 真 才 返回 真,反之返回假
两个 或 混合在一起的时候,就是要三个逻辑条件中有一个为 真 就 返回 真,三个都为假 才返回假
那混合套娃呢?
3秒后公布答案
3
2
1
其实也很好理解
从左往右去读,逻辑条件1 且 逻辑条件2 看成一个整体,这串返回什么?一个是返回 假
好,将 逻辑条件1 且 逻辑条件2 带回到原表达式中
假 或 逻辑条件3(真)
那么这串返回什么? 真
很好理解对吧,那么自行去理解一下第二段
再复杂一点
变量名 | 类 型 | 静态 | 数组 | 备 注 | 逻辑条件1 | 逻辑型 | | | 逻辑条件2 | 逻辑型 | | | 逻辑条件3 | 逻辑型 | | | 逻辑条件4 | 逻辑型 | | |
逻辑条件1 = 假 逻辑条件2 = 真 逻辑条件3 = 假 逻辑条件4 = 假 如果 (逻辑条件1 或 逻辑条件2 且 逻辑条件3 或 逻辑条件4 ) 调试输出 (真) 调试输出 (假)
自行理解自行测试!
当加入子程序的时候...事情开始有意思起来了
很好理解对吧?
但...为什么我要把调试输出注释起来?
请问,第一串逻辑语句中, 逻辑条件子程序1() 会不会执行? 逻辑条件子程序2()会不会执行?
第二串逻辑语句中,逻辑条件子程序1()会不会执行? 逻辑条件子程序2() 会不会执行?
3
2
1
我猜大部分人(包括很多资深程序员,因为很多时候他们压根不会这样写)都认为两条逻辑语句中的两个子程序都会执行
原因..我猜是易语言自带的优化功能,尽可能减少执行语句的数量
我们重新来看看这两串语句
且 : 两端的逻辑条件 必须 都为 真 才会返回 真,反之,有一个为 假 就 返回 假
那么是不是能换句话来讲,只要执行的过程中有一个返回了假,那么就没有往后执行的必要了?那么这条语句就一定会返回假?
看来是的
再看看看 或 语句
或 : 或 两端的逻辑条件 有一个 为 真 就会返回真,都为假 则返回 假
换句话来讲,只要有一个 逻辑条件 为 真,那么后面的就没有执行的必要了?
看来是的
okok,那么我们稍微套点娃
那么请问,那些程序会执行?哪些不会?
如果你有了自己的答案,回复可见↓
demo.e
(5.02 KB, 下载次数: 0)
|