此为 Mathematica 4 文档,内容基于更早版本的 Wolfram 语言
查看最新文档(版本11.2)

2.5.8 条件

Mathematica 中有一系列设置条件的方法,这可以使表达式在一定的条件 满足时才进行计算.

条件的结构

 的值为 False,故返回值为 y

此处仅计算 " " 表达式的值

在编程时,可以用If函数控制的多个分支来给出一个定义,也可以用 /; 条件 控制来给出几个定义 . 通常用多个定义可以使程序清楚和容易修改.

定义阶梯函数 : x > 0 时值为1,其余值为 -1

/; 定义阶梯函数正的哪一部分

这里定义阶梯函数负的哪一部分

这里显示了用 /; 给出的全部定义

If 函数提供了两种情况下选择方法,用多个选择时,就可以使用 If 的嵌套形式, 但通常用 WhichSwitch 更好一些.

这里定义了一个分三段的函数,用 True 作第三个测试以使用默认值 0

用了 Witch 的第一种情况

这里用了第三种情况

定义一个依赖于自变量在模 3 下的值

Mod[7,3]=1 ,故用了 Switch 的第二种情况

17 与 0 和 1 不匹配,但与 _ 匹配

Mathematica 等符号系统中的条件可能产生既不是 True,也不是 False 的结果. 例如 x Equal y 不给出 TrueFalse 的结果,除非对它们都指定了确定的值.

由于测试的结果既不是 True, 也不是 False,故 If 没有被计算

可以在 If 中添入第 4 个变量,当测试结果既非 True,也非 False 时使用它

处理符号条件的函数

Mathematica 仍将它作为一个符号方程

expr 的值不是 True 时,都认为是 False

Equal= 测试两个表达式是否恒等, 此处它们不恒等

EqualEqual= 区别是 Equal= 的返回值是 TrueFalse,而 Equal 可以以符号等式的形式出现. 测试两个表达式的结构时用 Equal=,测试数学上相等时用 Equal. 在模式匹配中 MathematicaEqual= 检查两个表达式是否匹配.

Equal= 去测试表达式的结构

Equal 给出了一个无用的结果

在设置条件时,常常用到  等组合测试. 重要的一点是当这些测试中任一个测试的结果为 False,组合测试的结果就是 False 时. Mathematica 逐次进行每个测试, 当某一个测试的结果为 False 时就停止.

逻辑表达式的计算

涉及两个测试的函数

两个测试都进行了计算

第一个测试的结果是 False,故第二个不再进行

Mathematica 处理逻辑表达式的方式允许进行组合测试,在组合测试中只有前面 的条件满足时,后面的测试才起作用. 这种特性与C语言等类似,可以使我们 很方便地编写各种 Mathematica 程序.