QBasic/数组和类型
QBasic 有五个内置类型:INTEGER (%), LONG(&) 整数,SINGLE(!) 浮点数,DOUBLE(#) 浮点数和 STRING($) 。QB64 还有两个内置类型:_INTEGER64 (&&) 和 _FLOAT (##)
隐式声明是在变量名称末尾添加类型字符 (%, &, !, #, $, &&, ##)。有关更多信息,请参阅 QBasic/基本数学。
显式声明是在首次使用前使用 DIM 语句。
DIM a AS STRING
DIM b AS INTEGER
DIM c AS LONG
DIM d AS SINGLE
DIM e AS DOUBLE
DIM f AS _INTEGER64 'QB64 only
DIM g AS _FLOAT 'QB64 only
如果您既不使用隐式也不使用显式声明,QBASIC 解释器会假定 SINGLE 类型。
用户定义类型允许您创建自己的数据结构。请注意,自定义类型类似于数组。
TYPE playertype
name AS STRING
score AS INTEGER
END TYPE
然后,您可以声明该类型下的变量,并访问它们。
DIM playername AS playertype
playername.name = "Bob"
playername.score = 92
上面的示例展示了如何使用自定义类型来维护数据,例如在玩游戏的玩家身上。
数组是存储在单个变量中的值的集合。STRING 是字符数组(因此,例如,char$(1) 表示字符串 char$ 中的第一个字符)。数字数组应使用 DIM 指令定义(除非您对它们进行 DIM,否则它们在每个维度上都限制为 10 个元素)。
默认情况下,QBasic 中的数组的大小是静态的,并且不能在程序中稍后更改。设置此类型数组的代码如下所示
DIM myArray(10) as TYPE 'this is explaining the datatype to be used during program execution in array'
TYPE 可以是任何内置的 QBasic(INTEGER、LONG、SINGLE、DOUBLE、STRING)或用户定义类型。如果未指定,则数组采用由变量名称后缀定义的类型 - INTEGER (%), LONG(&) 整数,SINGLE(!) 浮点数,DOUBLE(#),STRING($) - 或者如果没有,则为 INTEGER。
警告:如果您的数据类型是字符串,则 DIM string(10) 定义的是一个包含 10 个字符的单个字符串,而不是 10 个任意长度的字符串! (10 个最多包含 128 个字符的字符串将定义为 DIM string(10,128)
通过在程序开头发出元命令 '$DYNAMIC,您可以使数组变为动态
' $DYNAMIC
DIM myDynamicArray(5) as INTEGER
REDIM myDynamicArray(10) as INTEGER
现在这是完全合法的代码。
要释放数组占用的空间,请使用 ERASE 语句。
数组不限于一维 - 可以声明一个数组来接受两个参数,以便表示一个值的网格。
DIM housenames(25,25) as STRING
您不能使用 REDIM 语句来更改数组的维数,即使是动态分配。
在大多数语言中,数组从值 0 开始,然后向上计数。在 basic 中,可以索引数组,使其从任何值开始,并结束于任何其他值。
DIM deltas(-5 TO 5)
您可以使用 OPTION BASE 语句更改默认的下界。