伤城文章网 > 其它课程 > 零基础学按键精灵(第二章)

零基础学按键精灵(第二章)


数据类型
此文为小妖首发于按键精灵论坛。借百度平台转发,希望能够帮到 学按键的朋友。

其实,第一期已经跨越了。也就是说,本来第一期应该放在后面 的。但是,为了直观的让新手朋友知道自己缺乏的知识,我把它作为 了第一期。 第二期,我们来介绍数据类型。 实际来说,按键的数据类型不严谨。 比如我们定义一个变量直接是:
1. Dim x

这样就已经定义了 x 这个变量了。 数组变量如下:
1. Dim x(2)

这儿我们定义了数组名称是 x,数组最大下标是 2 的一个数组变 量。 其中的元素包括:x(0), x(1), x(2)这三个。所以,实际上,我们 直接定义了一组一共 3 个变量的数组。这样定义的好处,后面做循环 体的时候用得上。到时候再细说。这儿的 0,1,2 叫做下标。2 是最大 下标。 但是,如果是 VB,那么定义变量,就需要定义其数据类型。比 如,定义字符串类型的变量。应该是这样: Dim x as String

上面只是说明,按键为了让新手更加快速掌握按键,所有把数据 类型这个东西忽略了。在定义变量的时候,的确少了很多功夫。但是 这儿也会引来了很多问题。 非常多的新手朋友忽略了数据类型这个概 念,经常出错。比如如下代码:

1. Dim i,x(2) 2. i = "a" //我们把 i = "a" 这类以 “=” 号连接的语句叫做赋值语句。

通俗些就是在 i 代表的存储单元里面装”a”。 我们这儿先暂时这么理解,后 文我会高手大家,什么叫存储单元。 3. TracePrint x(i)

我们定义了两个变量,其中 x 是数组变量,数组最大下标为 2。 然后我们给 i 赋值”a”,因为上面并没有定义 i 是什么类型的变量,所 以这个赋值语句没毛病。 但是, 如果我们让 i 作为数组 x 的下标之后, 就出现问题了。大家复制这段代码去运行,就能发现,提示 脚本 我 的脚本 1.Q ,第 3 行:类型不匹配: 'I', 类型不匹配。 如果我们把 i 赋值“0”呢?
1. <p style="line-height: 30px; text-indent: 2em;"></p><div style="text-align: left;"><span style="text-indent: 30pt; line-height: 1.5;">Dim i, x(2)</span></div>i = "a" 2. x(0)=1 3. TracePrint x(i) 4. i = "0" 5. TracePrint x(i)

调试信息如下: 脚本 我的脚本 1.Q ,第 4 行:类型不匹配: 'I', 脚本 我的脚本 1.Q ,第 6 行:1

也就是说,我们的第二句调试语句 TracePrint x(i) 没什么问题。 为什么呢?因为当 “0” 赋值给 i 之后,因为”0”是数字的字符,按键 默认的把这个字符转换成了数值。 实际上 i=”0”在这儿等价于 i=0 了。 说这些,只是提醒大家数据类型的重要性。调试的时候,很容易因为 i 的值类型问题,无法通过调试。 一般的,按键类型有几个。 1、数值型(Integer、Double)。 2、字符型(字符串型)(String)。 3、布尔型(Boolean)。. 4、数组(Variant()等等)。 想知道你现在的变量是什么数据类型很简单。 用 typename 函数 就行了。
1. Dim i,x(2) 2. i = "1" 3. TracePrint typename(i) 4. i = 1 5. TracePrint typename(i) 6. i = 1.2 7. TracePrint typename(i) 8. TracePrint typename(1=1) 回布尔型值 9. TracePrint typename(x) 义的数组 x(2) //这儿是调试数组,x 是前面定 //直接调试等式,等式会直接返 //赋值为双精度数 //赋值为整数 //赋值为字符串

数值型, 就是数字, 包括整数型 (Integer) 、 双精度型 (Double) 。

字符型,字符型与字符串型。貌似都一样,因为基本没有什么函 数限制这个只能字符还是字符串的。 比如 “a”,“a123”等等, 都是字符 串型。 布尔型, 布尔型的值只有两个: false (假) 和 true (真) 。 且 false 的序号为 0,true 的序号是-1。
1. TracePrint 1=1 //意思是 调试输出 1=1 的值。 1=1 这是个等

式,不是赋值语句,作为函数参数出现的 = 号都表达等号的意思。这儿是 判断 1 是否等于 1。 2. MsgBox 1 = 1 //因为调试输出返回的值与弹出框不一样。大家调

试下,其实就是上面那两种结果。调试是-1,弹出是 true。代表的意思都 是 真。 3. TracePrint 1=2 4. MsgBox 1 = 2

数组: 定义方式前面已经说过了。 定义 x(2),那么 X(0), X(1), X(2) 都可以赋值,然后调用。 比如:
1. Dim x(2) 2. X(0)=1 3. X(1)=2 4. X(2)= X(0)+ X(1) 5. TracePrint X(2)

也就是相当于直接定义 3 个变量。当然,这个下标可以是变量: X(i)这样。
本帖隐藏的内容

数据类型转换:CBool 函数官方描述:返回表达式,此表达式 已转换为 Boolean 子类型的 Variant。

1. MsgBox CBool(-1) 2. MsgBox CBool(0) 3. MsgBox CBool(5)

调试下发现,第一个返回 true。第二个返回 false。第三个返回 true。其实,就是除了 0 或者等式结果返回 0,比如 CBool(1=0), 1=0 为假返回 0。这时候 CBool 函数值为 0(false)。其他情况都返 回-1(true)。 CByte 函数 官方描述:返回表达式,此表达式已被 转换为 Byte 子类型的 Variant。
1. TracePrint CByte(-1) 2. TracePrint CByte(254.5) 3. TracePrint CByte(256)

大家调试下。 调试结果如下: 脚本 我的脚本 1.Q ,第 1 行:溢出:'CBYTE', 脚本 我的脚本 1.Q ,第 2 行:254 脚本 我的脚本 1.Q ,第 3 行:溢出:'CBYTE', 这是因为 Cbyte 函数 强制把以上数据转换成字节型(byte 型)。 而 byte 型数据范围是 0-255。-1 和 256 都溢出(溢出就是数据超出 了范围)。


搜索更多“零基础学按键精灵(第二章)”

学习资料共享网 | 文档资料共享网 | 兰溪范文 | 酷我资料网 | 省心范文网 | 海文库 | 学习资料共享网 | 文档资料共享网 | 兰溪范文 | 酷我资料网 | 省心范文网 | 海文库 | 学习资料共享网 | 文档资料共享网 | 兰溪范文 | 酷我资料网 | 省心范文网 | 海文库 | 学习资料共享网 | 文档资料共享网 | 兰溪范文 | 酷我资料网 | 省心范文网 | 海文库 | 学习资料共享网 | 文档资料共享网 | 兰溪范文 | 酷我资料网 | 省心范文网 | 海文库 | 学习资料共享网 | 文档资料共享网 | 兰溪范文 | 酷我资料网 | 省心范文网 | 海文库 |

网站地图

All rights reserved Powered by 伤城文章网 5xts.com

copyright ©right 2010-2021。
伤城文章网内容来自网络,如有侵犯请联系客服。3088529994@qq.com