| | 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
 | 
 |