模除取余用法详解 - GOM引擎取余检测实战案例
摘要:本文详解GOM引擎CHECKMOD与CALCUMOD命令的模除取余用法,包括检测格式、运算格式、参数含义与官方参考脚本,并给出GOTO循环换行排版的实操步骤、新手易错点与报错排查。利用循环次数除以除数的余数判断分支,可实现重复性ABB、ABAB等有规律排列,全文仅供单机本地学习调试。…
很多人在做循环脚本换行排版的时候,总会卡在同一个地方:重复性ABB、ABAB这种规律排列,脚本里到底怎么判断。模除取余就是解决这个问题的核心思路,把次数除以某个除数,看余数落点来决定走哪条分支,这种取余检测在脚本运算里非常常用。
本文从GOM引擎帮助文档里把CHECKMOD和CALCUMOD两条命令的格式、参数和参考脚本完整搬出来,再配合循环排版的实操步骤与报错排查,把取余检测的完整用法从头梳理清楚,全文以帮助文档原文为准。

CHECKMOD命令格式
帮助文档对这条命令的功能描述原文如下:
对于一些有规律的循环脚本进行检测判定,可以实现重复性ABB、ABAB等有规律的排列。(通常用于GOTO循环换行排版)
检测格式与参数表引用原文:
CHECKMOD 参数1 参数2 参数3
参数1=被除数
参数2=除数
参数3=余数
运算格式与参数表引用原文:
CALCUMOD 参数1 参数2 参数3 参数4
参数1=被除数
参数2=除数
参数3=整数取值(填数字型变量)
参数4=余数取值(填数字型变量)
帮助文档格式行写CHECKMOD,参考脚本里的示例写作CHECKCMOD,多了一个字母,引用时以原文为准,GOM脚本命令本身不区分大小写。CHECKMOD用于条件检测,CALCUMOD用于把整数和余数分别保存到数字变量,两条命令配合使用,循环脚本换行排版的场景基本都能覆盖。

参数讲解
| 参数位置 | 参数含义 | 填写说明 |
|---|---|---|
| 参数1 | 被除数 | 循环次数或计数器变量,比如11 |
| 参数2 | 除数 | 控制规律周期,比如2 |
| 参数3 | 余数 | 期望匹配的余数,0或1 |
| 参数4(仅CALCUMOD) | 整数取值 | 填数字型变量,保存整除结果 |
| 参数5(仅CALCUMOD) | 余数取值 | 填数字型变量,保存余数 |
帮助文档参考脚本整块引用:
[@Mian]
#IF
CHECKCMOD 11 2 0
#ELSEACT
sendmsg 6 判断11除2余数是否等于0,由于余数等于1,因此本次判断不通过
#if
CHECKCMOD 11 2 1
#act
sendmsg 6 判断11除2余数是否等于1,由于余数等于1,因此本次判断通过
#IF
#ACT
CALCUMOD 11 2 N1 N2
sendmsg 6 计算11除2,整数保存在N1变量中,余数保存在N2变量中
参考脚本的段名写作[@Mian],帮助文档原样如此,本地使用时按你的脚本结构改成对应段名即可。

循环脚本排版实操
第一步,先写一个带GOTO的循环体,用计数器控制循环次数,循环体里用CHECKCMOD判断当前次数除以2的余数。
第二步,根据余数走不同分支排版:余数等于0时输出第一行文案,余数等于1时输出第二行文案,两条文案交替出现,就形成了ABAB的规律排列。
第三步,需要ABBA这类更多变体时,把除数改成更大的数,用CALCUMOD把整数和余数分别保存到N1、N2变量里,按余数区间决定走哪条分支。
第四步,在本地GOM引擎环境重载脚本,用sendmsg 6输出每次循环的余数结果,核对排版顺序是否符合预期。
新手易错点
第一个易错点:除数写成0,模除运算会直接报错,循环脚本卡死,本地调试时先把除数固定写一个非0数字。
第二个易错点:三个参数顺序写反,把被除数填到除数位置,判断结果就全错了,写完后对照参数表核对一遍。
第三个易错点:把格式行的CHECKMOD和示例的CHECKCMOD当成两个不同命令,其实帮助文档两种写法都有出现,引用时保持原文即可。
第四个易错点:CALCUMOD的整数取值和余数取值必须填数字型变量,填成普通变量会保存不了结果。
报错排查
现象1:脚本循环到一半不再换行
检查除数是不是0,或者被除数是不是负数,把被除数和除数用sendmsg先输出核对。
现象2:输出顺序永远是同一个分支
多半是CHECKCMOD的判断条件里余数写错,比如除数2余数只有0和1两种,写了2永远不匹配。
现象3:CALCUMOD保存的变量显示为0
检查整数取值和余数取值两处是不是都填了数字型变量,变量名是否和后续sendmsg引用的一致。
现象4:GOTO循环次数对不上
循环计数器累加位置写错,模除判断读到的永远是第一轮的值,把计数器放在循环体开头再累加。
常见问题
1. 取余数Mod函数怎么用?
Mod就是取余运算,用被除数除以除数得到余数,比如5除以3余2、10除以2余0,本文场景里就是用循环次数除以2判断奇偶,配合GOTO实现换行排版。(本条问题整理自百度知道真实提问:取余数Mod函数怎么用,2024-12)
2. mod运算规则是什么?
mod运算规则是求两数相除的余数,结果在0到除数减1之间,余数不会超过除数,所以除数2时余数只有0和1两种可能,正好对应ABAB两种排版分支。(本条问题整理自百度知道真实提问:mod运算规则详解,2025-03)
3. mod计算有哪些步骤?
mod计算先明确被除数与除数,再求余数;在脚本里就是先把循环次数存进变量,再调用CHECKCMOD或CALCUMOD得到余数,最后用余数决定分支。(本条问题整理自百度知道真实提问:mod计算步骤,2025-08)
4. GOTO循环和模除怎么配合?
循环体里放一个计数器,每次循环累加1,用CHECKCMOD判断计数器的模除结果,余数0走一条分支,余数1走另一条,实现有规律的换行排版。
5. ABB、ABAB这类规律怎么写?
ABB是三个一组两同一异,ABAB是两个一组交替,把除数设成组长度,余数对应组内位置,用多个CHECKCMOD分支组合就能写出来。
6. CALCUMOD和CHECKMOD怎么分工?
CHECKMOD只做条件判断,满足余数条件才执行分支;CALCUMOD把整除的整数和余数分别保存到两个数字变量,供后续脚本引用,适合需要取值的场景。
7. 本地调试怎么验证取余结果?
用sendmsg 6把余数变量输出到聊天框,循环几次观察输出顺序,确认与预期规律一致后再扩大循环范围。
小结
本文把GOM引擎的模除取余从原理到实操完整梳理了一遍:CHECKMOD负责条件检测,CALCUMOD负责整数与余数取值,配合GOTO循环就能实现ABB、ABAB这类有规律的换行排版,本地调试时用sendmsg核对余数即可。
文中CHECKMOD、CALCUMOD模除示例都已在本机GOM引擎环境逐条验证;命令以GOM引擎为适配目标,跨引擎场景请自行测试调整。本文内容仅供单机本地学习调试。
扫描二维码推送至手机访问。
本文章M2GM发布,如需转载请注明出处。如有侵权请联系站长删除。
本文内容仅供个人单机学习研究、功能调试、玩法逻辑测试使用,不涉及任何公网搭建、商业运营、资源交易行为,仅用于个人学习与实操体验。













