我是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中起作用。谢谢
答案 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--];