Skip to content

数值与文本

前言与确认

前面,我们已经学过了变量。如果说有什么需要复习的话,那么实际只有一句话:

变量由两部分组成,变量名和值。

仅此而已。但关于,我们有一些话要说。

教程依赖

本教程假设您已学习过快速开始常量与变量。若您尚未学习过,我们强烈推荐您首先学习相应教程。

先确认一下我们现有的工程文件夹结构:

root/
 ├─ emuera.config
 ├─ Emuera1824.exe
 ├─ CSV/
 └─ ERB/
     └─ System.erb

其中,System.erb的代码为:

erb
@EventFirst
  Print Hello World!
  Quit

两种值:数值与字符串

在 EraBasic 中,的类型大致有两种:数值字符串

  • 数值:就是数学里的数,比如 1100-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 HelloHello
PrintV输出一个数值变量PrintV Stone变量里的数值
PrintS输出一个字符串变量PrintS Name变量里的文本

最容易混淆的是 PrintPrintS

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 打印字符串变量。

下一步,我们来学习怎么让游戏接受玩家的输入输入与输出

GPL-3.0+ Licensed