第 4 章:条件判断
要返回两个数中较大的一个,需要先比较,再选择结果。豫言的条件表达式写成 若……则……否则……,整段表达式会产生一个值。
比较得到布尔值
豫言把布尔类型称为 「爻」:「阳」 表示真,「阴」 表示假。标准库的整数比较函数包括 「等」、「大于」 和 「小于」。
例如,「大于」于「八」于「一三」 判断 8 是否大于 13,结果为 「阴」。这里的参数顺序很重要,交换两个参数会改变比较的含义。
完整程序:返回较大的数
寻观「标准库」之书。
「较大者」乃化「整数」而化「整数」而「整数」也。
「较大者」者会「甲」而会「乙」而
若「大于」于「甲」于「乙」
则「甲」
否则「乙」也。
「打印行」于(「整数表示」于(「较大者」于「八」于「一三」))。
运行后输出 13。求值过程是:比较 8 和 13,条件为假,因此选择 否则 后的 13。把输入交换后,条件为真,选择 则 后的 13。
两个分支都是整数,所以整个条件表达式可以作为这个函数的返回值。如果一个分支返回整数,另一个分支返回字符串,就不符合这里声明的返回类型。
同时检查两个条件
判断一个整数是否严格大于 1 且小于 10,可以写成下面的表达式,假设 「数」 已经定义:
「且」于(「大于」于「数」于「一」)于(「小于」于「数」于「一零」)
「且」 要求两个条件都为真。「或者」 表示至少一个条件为真,「非」 把真假反转。边界值 1 和 10 不满足这里的条件。
这些名称是普通函数。需要根据第一个条件决定是否执行后面的计算时,用 若 明确安排分支,不要把普通布尔函数调用当成短路控制语句。
练习
写一个 「绝对值」 函数:输入小于零时,用 「减」于「零」于「数」 求相反数;否则返回输入。分别用 0、5 和 「减」于「零」于「五」 测试,结果应为 0、5、5。三个输入分别覆盖边界、正数和负数。
上一章 · 下一章:自定义数据类型 · 目录