数值与文本
前言与确认
前面,我们已经学过了变量。如果说有什么需要复习的话,那么实际只有一句话:
变量由两部分组成,变量名和值。
仅此而已。但关于值,我们有一些话要说。
先确认一下我们现有的工程文件夹结构:
root/
├─ emuera.config
├─ Emuera1824.exe
├─ CSV/
└─ ERB/
└─ System.erb其中,System.erb的代码为:
erb
@EventFirst
Print Hello World!
Quit两种值:数值与字符串
在 EraBasic 中,值的类型大致有两种:数值和字符串。
- 数值:就是数学里的数,比如
1、100、-5; - 字符串:其实就是文本啦,比如
Hello World!、小明。
字符串的英文是 String,缩写是 S。这很重要,得牢记:以后凡是看到命令或变量名里带一个 S,多半都和文本有关。
前面学到的变量定义 #Dim 语句,定义的是数值变量。在后面加个 S,就变成定义字符串变量了:
erb
@EventFirst
#DimS Text = "Hello World!"
Quit注意,字符串的值必须用双引号 " 括起来,而数值不用。引号就像贴在文字上的标签,告诉引擎:“这一段是文本,不要当成命令处理。”
数值:能算数的值
#Dim 定义的变量里装的是数值,可以直接参与加减乘除:
erb
@EventFirst
#Dim Stone = 3
#Dim Apple = 2
Stone = Stone + Apple
PrintV Stone
Quit输出:
5关于数值,有两件事现在知道就好:
- EraBasic 的数值是 64 位整数,也就是说没有小数。
5 / 3的结果是1,而不是1.666...(这叫“整除”); - 能表示的范围非常大(约 ±9.2×10¹⁸),做游戏基本不用担心装不下。
字符串:只能拼接的值
#DimS 定义的字符串变量里装的是文本。文本不能做加减乘除,但可以用 + 把它们拼接起来:
erb
@EventFirst
#DimS Name = "小明"
#DimS Greeting = "你好,"
Greeting = Greeting + Name
PrintS Greeting
Quit输出:
你好,小明怎么把值打印出来?
我们现在见过三个“打印”命令,是时候把它们摆在一起对比了:
| 命令 | 用途 | 例子 | 输出 |
|---|---|---|---|
Print | 原样输出后面的文本 | Print Hello | Hello |
PrintV | 输出一个数值变量 | PrintV Stone | 变量里的数值 |
PrintS | 输出一个字符串变量 | PrintS Name | 变量里的文本 |
最容易混淆的是 Print 和 PrintS:
erb
#DimS Text = "Hello World!"
Print Text
PrintS Text第一行会把 Text 这两个字原样打印出来(因为它只是一段普通文本),第二行才会打印变量里的 Hello World!。
一句话总结:Print 打印字面文本,PrintV/PrintS 打印变量里的值。
常见错误
数值和字符串是“两种不同的东西”,不能混着用。比如把文本直接塞进数值变量:
该代码含有可期待的错误
erb
@EventFirst
#Dim Stone = "三"
Quit会得到报错:
想给字符串变量赋值,记得把 #Dim 换成 #DimS,并把值用双引号括起来。
小结
- 值分两种:数值和字符串(文本);
#Dim定义数值变量,#DimS定义字符串变量;- 字符串的值要用双引号括起来;
- 数值能算数,字符串能拼接;
Print打印字面文本,PrintV打印数值变量,PrintS打印字符串变量。
下一步,我们来学习怎么让游戏接受玩家的输入:输入与输出。