Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.06.2017, 07:27
Интересующийся
Отправить личное сообщение для Alexsandr Посмотреть профиль Найти все сообщения от Alexsandr
 
Регистрация: 22.05.2017
Сообщений: 25

stopped after running 1000 steps and cannot display visualization
const test = (n) =>{
let result = n;

while (result > 1) { 
AmountNumber(result);
}
}
const AmountNumber = (n) =>{
  n--;
  return n;
}
test(20);

http://pythontutor.com/visualize.htm...rjs=iFg0cG3uKI
Error: stopped after running 1000 steps and cannot display visualization. Shorten your code, since Python Tutor is not designed to handle long-running code.

почему так? Вроде простая функция берет число n и с помощью другой функции производит n-- пока while(result >1)
Ответить с цитированием
  #2 (permalink)  
Старый 16.06.2017, 08:31
Кандидат Javascript-наук
Отправить личное сообщение для Diphenyl Oxalate Посмотреть профиль Найти все сообщения от Diphenyl Oxalate
 
Регистрация: 21.01.2017
Сообщений: 139

result не меняется, отсюда бесконечный цикл. Как раз в соседней теме обсуждение, почему так написать не получится.
Ответить с цитированием
  #3 (permalink)  
Старый 16.06.2017, 08:57
Интересующийся
Отправить личное сообщение для Alexsandr Посмотреть профиль Найти все сообщения от Alexsandr
 
Регистрация: 22.05.2017
Сообщений: 25

var i = 0;
while (i < 3) {
  alert( i );
  i++;
}

а почему здесь меняется условие а result нет
Ответить с цитированием
  #4 (permalink)  
Старый 16.06.2017, 09:55
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,210

Сообщение от Alexsandr
а почему здесь меняется условие а result нет
В последнем случае переменная i не передается как параметр в функцию...

Как вариант решения...

const test = (n) =>{
let result = n;

while (result > 1) { 
   result=AmountNumber(result);
}
}
const AmountNumber = (n) =>{
  n--;
  return n;
}
test(20);

P.S.
Но с таким синтаксисом я не знаком...
Ответить с цитированием
  #5 (permalink)  
Старый 16.06.2017, 10:40
Интересующийся
Отправить личное сообщение для Alexsandr Посмотреть профиль Найти все сообщения от Alexsandr
 
Регистрация: 22.05.2017
Сообщений: 25

Хочешь сказать что result попав параметром функции AmountNumber(n) теряет связь с result и возвращает значение return n; которое не имеет никакого отношения к изначальному result? И даже если я заменю n в AmountNumber = (n) на одинаковое result это не будет иметь значения потому как это уже другая переменная с другой ячейкой памяти, я верно понял?
Ответить с цитированием
  #6 (permalink)  
Старый 16.06.2017, 10:53
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,210

Сообщение от Alexsandr
я верно понял?
Да.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск