Do 是另外一种典型的循环函数, 如果是从另外的编程语言转到 Mathematica , 可能会更喜欢 Do 一点吧. Do 与 Table 有什么区别吗? 最大的不同之处在于, Do 只是将的一个参数中的表达式执行 n 边, 当整个 Do 运算完成之后, 不会返回任何的结果.
方法/步骤
1
先来看一下 Do 的语法结构吧, 你会发现与 Table 非常类似.
2
我们拿出一条同样的语句分别用 Table 和 Do 执行一下. 发现用 Do 执行完并没有任何的结果, 这个和我们刚才提高的两者的区别是相一致的.
4
另一方面, 如果我们只对循环过程中计算的某些结果感兴趣, 那也是有收集数据办法的. 比如来看下面的例子. 只收集 100 以内的素数.
5
看另外一种更为高效收集中间数据的例子吧. 这里用到 Sow 和 Reap 的收集方式.
注意事项
1
Do 属于过程式编程下的循环结构, 而过程式的编程范式的效率是相当低的, 但是在 Do 在各个版本的演化之中, 曾经对底层的优化, 效率有了很大的提升(跟 For 相比而言).
2
Sow 和 Reap 要比 AppendTo 效率上好的多.