Elroir
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Maza Faka Цитата: разобрался, как я понял, в последний раз :Factorial вызывается с параметром %1=1, но из-за того, что функция не доходит до конца, а прерывается по условию, значением %1 остаётся прошлый удачный вызов %1=2, вот только почему все вызовы функции сохраняются и подсчитываются, происходит что-то вроде счётчика? | Неправильно понял Скачай картинку и проследи за стрелками. 1.Вызывается виртуальный батник :Factorial, с аргументом 5 (назовем его Fact5). Переменная Result не существует. 2.Вызывается виртуальный батник :Factorial, с аргументом 4 (назовем его Fact4). Переменная Result не существует. 3.Вызывается виртуальный батник :Factorial, с аргументом 3 (назовем его Fact3). Переменная Result не существует. 4.Вызывается виртуальный батник :Factorial, с аргументом 2 (назовем его Fact2). Переменная Result не существует. 5.Вызывается виртуальный батник :Factorial, с аргументом 1 (назовем его Fact1). Переменная Result не существует. 6.Fact1 отработал – переменная Result равна 1. Возвращаемся в Fact2. 7.Fact2 отработал - переменная Result равна 2*1=2. Возвращаемся в Fact3. 8.Fact3 отработал - переменная Result равна 3*2=6. Возвращаемся в Fact4. 9.Fact4 отработал - переменная Result равна 4*6=24. Возвращаемся в Fact5. 10.Fact5 отработал - переменная Result равна 5*24=120. Возвращаемся в Fact.cmd. | Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 14:11 19-04-2007 | Исправлено: Elroir, 14:12 19-04-2007 |
|