Mathematica - Как выполнить функцию внутри цикла while? - PullRequest
0 голосов
/ 26 мая 2019

Я новичок в Mathematica и пытаюсь заставить функцию выполняться в цикле while. Я думаю, что лучший способ объяснить это на примере. Итак, скажем, у вас есть обычный цикл while while, как показано ниже:

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

Это выводит следующее: 5 4 3 2 1, как и следовало ожидать. Однако почему это не работает:

x=5;

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

Когда я пытаюсь что-то подобное выше, он просто выводит 5 и затем останавливается. Я привык к Python, и что-то подобное будет работать в Python - как я могу заставить его работать в Mathematica. Спасибо

1 Ответ

0 голосов
/ 26 мая 2019

При первом запуске

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

ничего не печатается, потому что функция g не была определена до того, как ее использовали.

Во второй раз, когда вы запускаете его, он печатает желаемое значение 5,4,3,2,1, потому что ранее видел определение g.

Вы можете сделать это каждый раз, если определите g перед первым использованием, как это

g[]:= Print[x];
x=5;
While[x > 0, g[]; x--];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...