Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2017, 22:27   #1
Shvarcengold
 
Регистрация: 07.03.2017
Сообщений: 6
По умолчанию [РЕШЕНО] Почему JS выдает undefined??

Хотел написать функцию, суммы всех чисел от 1 до n, через рекурсию
Код:
var n=0;
function sumTo(n) {
	var res = 0;
	if(n!=1){
		res= n+sumTo(n-1);
	} else return 1;
}

alert(sumTo(100));
Решение: функция всегда должна возвращать значение. Рабочие варианты смотрите в следующих трёх сообщениях.

Последний раз редактировалось Вадим Мошев; 07.05.2018 в 18:41.
Shvarcengold вне форума Ответить с цитированием
Старый 26.12.2017, 22:42   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

функция должна возвращать значение. Всегда.
Код:
   function sumTo(n) {
	if(n!=1){
		return n+sumTo(n-1);
	} else return 1;
}
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 26.12.2017, 23:41   #3
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Если в секции "then" условного оператора используется return, то ветвь else не нужна. В итоге, можно записать проще:
Код:
   function sumTo(n) {
	if(n!=1){
		return n+sumTo(n-1);
	};
         return 1;
}
Вадим Мошев вне форума Ответить с цитированием
Старый 27.12.2017, 00:06   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а так можно?
Код:
   function sumTo(n) {
	return n<=1?1:n+sumTo(n-1);
   };
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.12.2017, 00:07   #5
Shvarcengold
 
Регистрация: 07.03.2017
Сообщений: 6
По умолчанию

Спасибо большое! понял где ошибка
Shvarcengold вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[РЕШЕНО][Java] Почему не работает мой код? vadimor Помощь студентам 5 29.05.2017 22:39
[РЕШЕНО]: Почему не работает цикл for на javaScript. Shvarcengold Помощь студентам 2 07.03.2017 15:24
Выдает такую ошибку: Fatal error: Uncaught Error: Call to undefined function mysql_connect() Shadowfank PHP 5 05.03.2017 16:32
Почему постоянно выдает 0? Shadowfank Общие вопросы C/C++ 2 02.03.2017 20:56
[РЕШЕНО] Почему не появляется фоновое изображение? Tamago4aRUS HTML и CSS 2 08.02.2017 20:01