Skip to content

基本运算

前言与确认

有了变量,我们就可以往里面装值了。但游戏里的值不会一成不变——金币会变多、体力会减少、好感度会上升。要让这些“变化”发生,就需要用到运算

教程依赖

本教程假设您已学习过快速开始数值与文本输入与输出。若您尚未学习过,我们强烈推荐您首先学习相应教程。

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

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

其中,System.erb的代码为:

erb
@EventFirst
  Print Hello World!
  Quit

数值运算

最常用的是四则运算,此外还有整除和取余:

erb
@EventFirst
  A = 1+2  ; 3
  B = 3-2  ; 1
  C = 2*3  ; 6
  D = 6/3  ; 2
  E = 5/3  ; 1
  F = 5%3  ; 2
  PrintVL A
  PrintVL B
  PrintVL C
  PrintVL D
  PrintVL E
  PrintVL F
  Quit
符号含义备注
+加法
-减法
*乘法
/除法整除,会舍去小数部分
%取余也叫“取模”,返回除不尽的余数

注意 5 / 3 的结果是 1 而不是 1.666...,因为 EraBasic 的数值都是整数。想保留两位小数时,通常改用“先乘 100 再除”的技巧。

复合赋值

如果只是想“在原来的基础上加一点”,可以把运算符和 = 连起来写:

erb
@EventFirst
  A = 5
  A += 2  ; 相当于 A = A + 2,此时 A 为 7
  PrintVL A
  A -= 2  ; 相当于 A = A - 2,此时 A 为 5
  PrintVL A
  A *= 2  ; 相当于 A = A * 2,此时 A 为 10
  PrintVL A
  A /= 2  ; 相当于 A = A / 2,此时 A 为 5
  PrintVL A
  A %= 2  ; 相当于 A = A % 2,此时 A 为 1
  PrintVL A
  Quit

+=-=*=/=%= 只是一层语法糖,用不用都不影响结果。但在数值越改越多时,它能少写很多重复的变量名,也更不容易漏改。

字符串运算

字符串不能做加减乘除,但能拼接重复

  • +:把两段文本接在一起;
  • *:把一段文本重复若干次(文本 * 整数)。
erb
@EventFirst
  #DimS A = "喵"
  #DimS B = "呜"
  PrintS A + B
  PrintL
  PrintS A * 5
  PrintL
  Quit

输出:

喵呜
喵喵喵喵喵

注意:数字和字符串不能相加,字符串也不能乘以字符串。想让数字和文本一起输出,可以用 Print 系命令分开打印,或者使用格式化字符串(我们后面会学到)。

综合练习:金币变少了

erb
@EventFirst
  #Dim Money = 100
  Print 你原本有
  PrintV Money
  PrintL 枚金币。

  Money -= 30
  Print 买了一瓶药水后,你还剩
  PrintV Money
  PrintL 枚金币。
  Quit

运行效果:

你原本有100枚金币。
买了一瓶药水后,你还剩70枚金币。

小结

  • 数值支持 + - * / %,其中 / 是整除、% 是取余;
  • += -= *= /= %= 是复合赋值,用于在原值上做运算;
  • 字符串用 + 拼接、用 * 重复,但不能和数字混着算。

下一步,我们把这些零零散散的计算组合成真正的表达式表达式

GPL-3.0+ Licensed