条件
Mathematica 中有一系列设置条件的方法,这可以使表达式在一定的条件满足时才进行计算.
| lhs:=rhs/;test | 当 test 的值为 True 时用定义 |
| If[test,then,else] | 当 test 的值为 True 时计算 then,值为 False 时计算 else |
| Which[test1,value1,test2,...] | 逐个计算 ,给出第一个 为 True 的 value |
| Switch[expr,form1,value1,form2,...] | 将 expr 与每个 比较,给出第一个匹配的 value |
| Switch[expr,form1,value1,form2,...,_,def] | 将 def 作为默认值 |
| Piecewise[{{value1,test1},...},def] | 给出第一个 为 True 的 value |
条件的结构.
test 的值为
False,故
else 表达式的返回值为

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

定义阶梯函数正的那一部分.
这里显示了用

给出的全部定义.
If 函数提供了两种情况下选择方法. 用多个选择时,就可以使用 If 函数的嵌套形式. 但通常用 Which 和 Switch 更好一些.
这里定义了一个分三段的函数. 用
True 作第三个测试以使用默认值0.
| Out[8]= |  |
| Out[9]= |  |
定义一个依赖于自变量在模

下的值.
| Out[11]= |  |
| Out[12]= |  |
Mathematica 等符号系统中的条件可能产生既不是 True,也不是 False 的结果. 例如
不给出 True 或 False 的结果,除非对
和
都指定了确定的值.
| Out[13]= |  |
| Out[14]= |  |
处理符号条件的函数.
| Out[15]= |  |
| Out[16]= |  |

,

测试两个表达式是否恒等,此处它们不恒等.
| Out[17]= |  |
和
的区别是
的返回值是 True 或 False,而
可以以符号等式的形式出现 (见 "方程" ). 测试两个表达式的结构时用
,测试数学上相等时用
. 在模式匹配中,Mathematica 用
检查两个表达式是否匹配.
用

去测试表达式的结构.
| Out[18]= |  |

给出了一个无用的结果.
| Out[19]= |  |
在设置条件时,常常用到
等组合测试. 重要的一点是当这些测试中任一个测试的结果为 False,组合测试
的结果就是 False 时. Mathematica 逐次进行每个测试
,当某一个测试
的结果为 False 时就停止.
| expr1&&expr2&&expr3 | 计算到某一个 为 False 为止 |
| expr1||expr2||expr3 | 计算到某一个 为 True 时停止 |
逻辑表达式的计算.
| Out[21]= |  |
第一个测试的结果是
False,故第二个不再进行. 第二个测试将包含

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