Mathematica-如何在while循环内执行函数?

时间:2019-05-26 18:02:06

标签: function loops while-loop wolfram-mathematica

我是Mathematica的新手,正在尝试让一个函数在while循环中执行。我认为解释此问题的最佳方法是使用示例。 因此,假设您有一个正常的while循环,如下所示:

In[1]:= x = 5;
While[x > 0, Print[x]; x--];

这将输出以下内容: 5 4 3 2 一如预期。 但是,为什么不起作用:

x=5;

While[x > 0, g[]; x--];
g[] = Print[x];

当我尝试上述操作时,它只会输出5,然后停止。我已经习惯了Python,类似的东西在Python中也可以使用-如何使其在Mathematica中起作用。谢谢

1 个答案:

答案 0 :(得分:0)

第一次运行此

x=5;
While[x > 0, g[]; x--];
g[]:= Print[x];

它不打印任何内容,因为在使用函数g之前尚未定义它。

第二次运行它会打印出所需的5,4,3,2,1,因为它先前已经看到了g的定义。

如果您在首次使用g之前定义g,就可以每次进行此操作

g[]:= Print[x];
x=5;
While[x > 0, g[]; x--];