从变量的使用范围来区分,可以将变量分为“局部变量”、“程序集变量”和“全局变量”。 局部变量,只能在其所在的子程序中才能被调用的变量,其他子程序都无法调用。因为子程序被调用的时候,这种变量才占用系统的内存,当子程序执行结束后,变量所占空间被系统收回,因此局部变量是非常节省系统内存的。
程序集变量,一般情况下仅在本程序集中被调用。
程序集变量所在的程序集中的所有子程序,都可以自由访问程序集变量,多个子程序都需要访问的数据,可以使用程序集变量来存储。属于静态变量。
全局变量,在程序运行后,所有程序集内子程序都可以使用的变量。也是覆盖范围最大的变量。这种变量在程序运行后即占用内存空间,在程序运行结束才从内存中清除,所以会长时间占用系统资源,建议根据程序的实际情况适当使用。
在选择使用变量的类型时,尽量选择符合该变量使用范围的变量类型,以节省系统内存。
2.4.2 变量的赋值
赋值语句是使变量取得数据的常用方法之一。
给变量赋值的时候要注意变量的数据类型,符合各数据类型的赋值规则即可。 变量的赋值还有几个需要注意的地方,例如: 1.给数值型数据赋值时,数据会自动转换类型
任意数值类型的数据可以被写入到其它任意数值类型的变量中,系统将自动进行转换。例如将一个短整数写入到整数型变量中,将一个整数写入到小数型变量中等等,但是此时必须注意防止上一章中所提到的溢出问题。若将小数型变量写入到整数型变量时,会丢失小数点后的内容,请大家千万注意使用,最好转换类型是一一对应。
2.使用“连续赋值()”命令给多个变量同时赋值 “连续赋值()”命令有2个参数,第一个参数是用做赋予的值和资源,第二个参数是被赋值的变量或变量数组,第二个参数可以重复添加,即可以添加多个被赋值的变量,例如: 连续赋值 (100, 变量1, 变量2, 变量3, 变量4)
命令运行后,将会给变量1、变量2、变量3和变量4同时赋值100。这一行代码相当于以下四行代码:
变量1 = 100 变量2 = 100 变量3 = 100
变量4 = 100
以上代码是最基本也是最典型的赋值语句。其格式为:
变量名 = 表达式
功能是:把“=”号右端的表达式的值赋予“=”号左端的变量。或者说,让“=”号左端的变量取“=”号右端表达式的值。“=”号,称为赋值符号,不同于数学上的等于号。
3.赋值程序例 在数学上,
变量1=变量1 + 1
是矛盾的方程,不存在这样的“变量1”。
而在易语言中,这类语句是屡见不鲜的。它执行的结果是在旧“变量1”取值的基础上让“变量1”取得一个新值。也就是改变“变量1”所代表的数值。上面那个语句执行的结
21
果就是让“变量1”增大1。
如果使用
变量1+ 变量2=100+100 或
变量1+ 变量2= 变量3+ 变量4) 都是错误的。因为赋值语句的格式中,要求赋值符号的左端必须为一个变量名。而这里的“变量1+变量2”不是变量名(它不符合变量名的构成规则)。
例1.某学生5门功课的考试成绩分别为75,82,90,63,84。求该生的考试总分和平均分。“Windows控制台程序”代码如下:
按“F5键”运行程序,分别将对应的分数输入,程序便将计算结果输出显示。
2.4.3 变量的初始值
变量的初始值即一种变量在程序运行时,没有赋予新值前的初始数据。每一种数据类型的变量初始值都有所不同。像文本型变量的初始值是一个空文本,表示为“”,数值型变量的初始值是0等等。下表所示。
变量的初始值
22
变量类型 数值型 逻辑型 日期时间型 文本型 字节集型 变量初始值 0 假 1899年12月30日 空文本 空字节集 初始值在代码中的表示方法 0 假 [1899年12月30日] “” {}
大家可以制作一个简单的例程,来查看各种变量的初始值。新建一个“Windows控制台程序”,在“_启动子程序”新建10个局部变量,并分别将变量名改为“字节变量”、“短整数变量”、“整数变量”、“长整数变量”、“小数变量”、“双精度小数变量”、“逻辑变量”、“日期时间变量”、“文本变量”、“字节集变量”,然后根据变量名定义相应的数据类型,并输入代码:
标准输出 (, 字节变量, #换行符, 短整数变量, #换行符, 整数变量, #换行符, 长整数变量, #换行符, 小数变量, #换行符, 双精度小数变量, #换行符, 逻辑变量, #换行符, 日期时间变量, #换行符, 文本变量, #换行符, 到文本 (字节集变量))
标准输入 ()
按“F5键”试运行程序,控制台窗口将10个变量的值分行显示出来,由于没有对这些变量进行赋值,所以画板显示的是这些变量的初始值。
如一个变量未被赋值时,将取零值或空文本。 “Windows控制台程序”代码如下:
按“F5键”运行程序,其中“数值型”的输出为“1”;“文本型”的输出值是“文本”。 数值型 = 数值型 + 1 文本型 = 文本型 + “文本” 以上两行代码在计算时相当于 数值型 = 0 + 1
文本型 = “” + “文本”
2.4.4 静态局部变量
“静态”属性是局部变量的重要属性。具有“静态”属性的局部变量称为“静态局部变量”。静态局部变量在子程序运行完毕后仍保留其内容;而非静态变量,即普通局部变量,
23
在每次进入子程序时都被重新初始化。
静态变量大致相当于“局部变量”和“全局变量”的结合:它具有局部变量的作用域,同时具有全局变量的生命周期。
静态变量的定义和取消定义的方法很简单,在欲定义的局部变量的静态属性上点击鼠标左键,当静态属性上出现“√”后,即表示定义了一个静态变量,当再次点击将“√”去掉,即表示取消定义。也可以在静态属性上按空格键,也可以定义和取消变量的静态属性。
下面编写一个简单的程序,来测试变量的静态属性。
新建一个“Windows控制台程序”,并在“_启动子程序”中新建2个局部变量。一个变量名定义为“静态变量”;另一个变量名定义为“非静态变量”。都为整数型变量。将“静态变量”设置为静态属性。
输入代码:
按“F5键”试运行程序,输入一个数,然后按“回车键”。
会显示2行内容,其中第二行的数字是不变的,显示的是非静态变量中的数据;而第一行的数字每次都递增,显示的是静态变量中的数据。
分析代码可以发现:非静态变量的值每次后,都会恢复它的初始值,所以代码: 非静态变量 = 非静态变量 + 输入值 其实等于代码:
非静态变量 = 0 + 输入值
静态变量会保存上次的值,所以总是递增的。
2.5易语言的数据类型
在讲述变量之后和讲述常量之前,有必要介绍易语言中不同的数据类型。 数据类型包括:数值型、逻辑型、日期时间型等。
24

