用户:AlanTuring查看:1 回复:1 评论:1 创建时间:2020-03-24T14:00:36
-----编程猫的隐藏数据转换-----
今天,我们来聊一聊编程猫的隐藏数据转换,首先,我们来看一个小例子,比如说,我们想让计算机去判断3>2>1是否成立?我们应该则么做?大部分人应该会这样想:编程猫没有(?)>(?)>(?)这样连续比较的积木,所以,我们可以用且去进行判断,应该是【3>2】且【3>1】且【2>1】,对吧,积木如下:
没错,这样可以,但是,如果我们想让计算机判断100>99>98>……>2>1是否成立呢,难道要用一堆如果和且吗,有些人就会想到一个方法:连续嵌套,什么意思呢?是把【3>2】放到【?>1】里面,如图:
我们点击一下积木,不成立,但是它为什么为不成立呢?这就要谈到一个概念了——布尔:
布尔值是“真” True 或“假” False 中的一个。动作脚本也会在适当时将值 True 和 False 转换为 1(true) 和 0(false)。布尔值经常与动作脚本语句中通过比较控制脚本流的逻辑运算符一起使用。
在大于积木里,只能输入数字,但是我们将一个布尔积木放了进去,它不可能比较true或false与1的大小,因此,这时候,编程猫自动把布尔值转化为了数字类型,如前所讲true转化为数字后应是1(二进制),但是,1为什么大于1呢。这还是不符合常理。所以我们知道了,编程猫将true转化为了二进制数字。
那么,我们来看看如果直接用布尔积木,它的值是什么,我们可以引用气泡输入法:
我们可以看到,结果是true,为了证明编程猫是把布尔值在比较中转化为了二进制数字,我们再来做2个实验,第一个:用强制类型转换:
由此我们可以知道知道,我们之前的推测是正确的,那么,为了更进一步证实这件事,我们再来验证一次:
现在,我们就可以确定了。
-----总结-----
那么,编程猫为什么这样呢?我认为,这样本身应该是报错的,但是如果一个新手啥都不会就来一个报错,打击还是很大的,我认为,编程猫这一点还是不错的,还可以让我们看到布尔值转化为二进制的一个过程与结果。
好了,这期教程就到这里,再见!
-----再见-----
-----【疯癫出品|教程贴】-----