Skip to content

LingBuilder「流程控制」图文教程 ​

适用版本:LingBuilder 0.8.21 及以上(含并列分支自动对齐、fz 拼音补全「分支」) 你将学会:新手模式里全部流程控制语句——条件分支、多路判断、六种循环、异常处理,以及 跳出循环 / 继续循环 两个小命令。每个结构都给出「怎么输入 → 长什么样 → 最小示例」。

本教程面向新手模式(结构化中文编辑器)的初学者,不涉及专业模式。全部截图来自真机新手模式,截图都可以点击放大。示例都写在 按钮1_被单击 事件里,跟在自己的项目里照抄即可。


第 1 章 先认识新手编辑器 ​

双击解决方案树的 MainWindow.lcpp,就进入新手模式的结构化编辑器:左边是行号,行号右边一列是流程导轨(┌ 结构开始、│ 中间、├ 分支、└ 结构结束),代码区按中文语句着色。右上角可随时在「新手 / 专业 / 原生」三种模式间切换。

新手编辑器全貌

流程导轨是新手模式特有的「护栏」:它按你写的结构自动配对绘制,写错嵌套时一眼就能看出来。本教程每个结构的截图都能看到它。


第 2 章 流程语句怎么输入:拼音补全 ​

在代码区任意空行直接敲拼音首字母或全拼,补全面板就会弹出对应结构,↑↓ 选择、Enter 上屏。例如敲 rg(如果):

拼音呼出如果

上屏后是一个带占位条件的完整模板,光标自动停在括号里——把「条件」改成你自己的表达式就能用。所有流程语句的拼音键见文末速查表;Ctrl+空格 可随时手动呼出补全。

小技巧:模板里的占位文字(条件 / 表达式 / 次数…)上屏时处于选中态,直接打字就会整体替换。


第 3 章 条件分支:如果 / 否则 / 否则如果 ​

敲 rg 上屏「如果」模板,填入条件与两个分支的语句:

如果 (命令索引 = 1)
    信息框 ("你点了第一个按钮", 64, "提示")
否则
    信息框 ("你点了其他按钮", 64, "提示")
如果结束

如果 否则

注意「否则」与「如果」在同一条垂直线上(失去焦点时会自动对齐),分支体比它们深一层。

需要多个条件时,在「否则」之前插入 否则如果 (条件),可以写任意多段,从上往下依次匹配,命中一段就跳过其余:

如果 (命令索引 = 1)
    调试输出 ("新建文档")
否则如果 (命令索引 = 2)
    调试输出 ("打开文档")
否则
    调试输出 ("其他命令")
如果结束

否则如果

只想「满足才做、不满足拉倒」时,用不带否则的 如果真,少一层嵌套:

如果真 (命令索引 = 1)
    信息框 ("欢迎回来", 64, "提示")
如果真结束

如果真

语句拼音说明
如果 (条件) … 否则 … 如果结束rg条件成立走如果体,否则走否则体
否则如果 (条件)fzrg追加多段条件,必须在否则之前
如果真 (条件) … 如果真结束rgz不带否则的单条件分支

第 4 章 多路判断:选择 / 分支 / 默认 ​

按表达式的值进入匹配的分支。敲 xz(或 pd)上屏「选择」模板:

拼音呼出选择

一个「选择」里可以有任意多个 分支。把光标放在某个分支体的行尾回车,敲 fz(分支)就能补全出下一个分支:

拼音呼出分支

手敲的第二个「分支」继承了上一行的深层缩进也没关系——失焦提交时会自动吸附回兄弟分支同一列。写歪时的样子:

提交前缩进不齐

失焦后全部分支自动对齐:

提交后自动对齐

完整示例(分支 (3, 4) 表示一个分支匹配多个值,逗号分隔):

选择 (命令索引)
    分支 (1)
        信息框 ("新建文档", 64, "提示")
    分支 (2)
        信息框 ("打开文档", 64, "提示")
    分支 (3, 4)
        信息框 ("保存或另存为", 64, "提示")
    默认
        信息框 ("未知命令", 48, "提示")
选择结束

多分支选择

三条规则:默认 只能有一个;判断 … 判断结束 与 选择 完全同义;情况 等价于 分支。

语句拼音说明
选择 (表达式) … 选择结束xz / pd多路匹配
分支 (值1, [值2…])fz / fenzhi匹配分支,值可多个
默认mr没有匹配时进入,最多一个

第 5 章 六种循环 ​

5.1 计次循环:按次数执行(最常用) ​

敲 jcxh 上屏模板,第一个参数是总次数,第二个参数是计次变量(可省略)。计次从 1 开始。

把光标放在这一行行尾按 Enter,编辑器会弹出「为 次 选择类型」面板并推荐 整数型:

自动登记计次变量

按 Enter 确认后,次 自动登记进子程序下方的局部声明表(不用自己去建变量),光标落到下一行:

计次循环首 (3, 次)
    调试输出 ("又跑了一圈")
计次循环尾 ()

计次循环

5.2 判断循环:先判断再执行(while) ​

条件成立就反复执行,每次进入循环前重新判断:

倒计时 = 3
判断循环首 (倒计时 > 0)
    调试输出 ("倒计时进行中")
    倒计时 = 倒计时 - 1
判断循环尾 ()

赋值行尾按 Enter 时,倒计时 同样会自动登记为局部变量:

判断循环

别忘了在循环体里改变条件(比如 倒计时 = 倒计时 - 1),否则就是死循环。

5.3 循环判断:先执行再判断(do-while) ​

先执行一次循环体,最后再判断条件是否继续:

循环判断首 ()
    调试输出 ("至少执行一次")
循环判断尾 (命令索引 = 1)

循环判断

5.4 循环:无限循环 + 跳出循环 ​

循环 … 循环结束 会一直执行,必须在体内用 跳出循环(break)离开:

尝试次数 = 0
循环
    尝试次数 = 尝试次数 + 1
    如果真 (尝试次数 >= 3)
        跳出循环
    如果真结束
循环结束

无限循环与跳出

5.5 继续循环:跳过这一次 ​

继续循环(老写法 到循环尾)跳过本次循环剩余语句、直接进入下一次:

计次循环首 (5, 序号)
    如果真 (序号 = 3)
        继续循环
    如果真结束
    调试输出 ("处理一个任务")
计次循环尾 ()

继续循环

5.6 变量循环:按步长遍历数值区间 ​

四个参数:起始值、目标值、递增值(可为负,不能为 0)、循环变量。示例从 1 走到 9、每次加 2:

变量循环首 (1, 9, 2, 步进值)
    调试输出 ("向前一步")
变量循环尾 ()

变量循环

5.7 枚举循环:遍历数组 / 集合(foreach) ​

第一个参数是集合(数组),第二个参数是当前项。当前名称 的类型会按集合元素自动推荐并登记:

枚举循环首 (名称列表, 当前名称)
    调试输出 ("报到")
枚举循环尾 ()

枚举循环

名称列表 是在「项目变量与常量」里声明的文本型数组(全局 文本型 名称列表[])。项目里没有数组时也可以先在局部声明表自己建一个。

循环拼音口诀
计次循环首 (次数, [计次变量])jcxh固定次数,计次从 1 开始
判断循环首 (条件)pdxh先判断后执行(while)
循环判断首 ()xhpd先执行后判断(do-while),条件写在尾上
循环 … 循环结束xh无限循环,配 跳出循环 使用
变量循环首 (起始, 目标, 递增, 变量)blxh数值区间按步长
枚举循环首 (集合, 当前项)mjxh遍历数组 / 集合

第 6 章 异常处理:尝试 / 捕获 / 最终 / 抛出 ​

抛出 主动抛出一个文本错误;捕获 接住它(错误信息是文本型);最终 里的语句无论如何都会执行(放清理代码):

尝试
    抛出 ("模拟一个错误")
捕获 (错误信息)
    信息框 (错误信息, 48, "出错了")
最终
    调试输出 ("无论如何都会执行")
尝试结束

尝试捕获

规则:捕获 与 最终 至少写一个;最终 必须在 捕获 之后;它们与 尝试 同列。敲 cs(尝试捕获)一次上屏整套模板,抛出 的拼音是 pc。


第 7 章 拼音速查表 ​

语句首字母全拼英文
如果rgruguoif
如果真rgzruguozheniftrue
否则fzfouzeelse
否则如果fzrgfouzeruguoelseif
选择 / 判断xz / pdxuanze / panduanswitch
分支fzfenzhicase
默认mrmorendefault
循环xhxunhuanloop
判断循环pdxhpanduanxunhuanwhile
循环判断xhpdxunhuanpanduando
计次循环jcxhjicixunhuanfor
变量循环blxhbianliangxunhuanrange
枚举循环mjxhmeijuxunhuanforeach
跳出循环tcxhtiaochuxunhuanbreak
继续循环 / 到循环尾jjxh / dxhwjixuxunhuan / daoxunhuanweicontinue
尝试捕获cschangshitry / catch / finally
抛出pcpaochuthrow

第 8 章 常见问题 ​

Q:手敲的第二个「分支」比第一个深一层,是坏了吗? 不是。新手模式回车自动缩进只加不减,手敲的分支行会继承上一行的深层缩进;失焦提交时编辑器会把所有分支自动吸附到同一列(见第 4 章图 8 → 图 9),否则 / 否则如果 / 捕获 / 最终 则自动与结构首行同列。什么都不用调。

Q:循环变量一定要先声明吗? 不用。在 计次循环首 / 变量循环首 / 枚举循环首 行尾按回车,编辑器弹出类型面板(自动推荐类型),确认后就登记进局部声明表;给未声明变量赋值(如 倒计时 = 3)同理。想手动建变量/常量用 Ctrl+L / Ctrl+B。

Q:结构写到一半(还没写「结束」行)能保存吗? 能。新手模式允许随时保存进行中的代码;生成 C++ 或运行前补全结构即可,错误列表会提示缺哪个结束语句。

Q:分支 后面的值可以是文本吗?选择 的表达式与分支值按整数处理,文本条件请使用 如果 / 否则如果 组合。


附:配套工程 ​

流程控制演示 项目(空白 Win32 窗口模板 + 按钮1),把文中任意示例粘进 按钮1_被单击 事件,按 F5 生成运行,点按钮即可验证流程走向。