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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据类型

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

其实,第一期已经跨越了。也就是说,本来第一期应该放在后面的。但是,为了直观的让新手朋友知道自己缺乏的知识,我把它作为了第一期。

第二期,我们来介绍数据类型。

实际来说,按键的数据类型不严谨。

比如我们定义一个变量直接是:

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.

style="text-align: left;">Dim i, x(2)

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是前面定

义的数组x(2)

数值型,就是数字,包括整数型(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都溢出(溢出就是数据超出了范围)。

相关文档
最新文档