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

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

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2021, 11:46   #1
Xandr555
 
Регистрация: 15.03.2021
Сообщений: 6
По умолчанию Проблемы с возвратом функции

Доброе утро. В таком варианте выполнения функции в конце выходит undefined.
Код:
function showPrimes(n) {

for (let i = 2; i < n; i++) {
if (!isPrime(i)) continue;

alert(i);
}
}

function isPrime(n) {
for (let i = 2; i < n; i++) {
if (n % i == 0) return false;
}

return true;
}
alert (showPrimes (20));
Подсказали, что это из-за того, что функция ничего не возвращает ничего. Вставил return, undefineda нет, но возникла проблема - выводится только первое и последнее значения функции.
Код:
function showPrimes(n) {

for (let i = 2; i < n; i++) {
if (!isPrime(i)) continue;

alert(i);
return (n);
}
}

function isPrime(n) {
for (let i = 2; i < n; i++) {
if (n % i == 0) return false;
}

return true;
}
alert (showPrimes (20));
Заранее благодарю за помощь.
Xandr555 вне форума Ответить с цитированием
Старый 26.03.2021, 14:45   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

А зачем showPrimes засовывать в alert?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 26.03.2021, 15:26   #3
Xandr555
 
Регистрация: 15.03.2021
Сообщений: 6
По умолчанию

с alert показывает первое и последнее значение, без alert - только первое
Xandr555 вне форума Ответить с цитированием
Старый 26.03.2021, 15:50   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Код:
function showPrimes(n) {
  for (let i = 2; i < n; i++) {
    if (!isPrime(i)) continue;
    alert(i);
  }
}

function isPrime(n) {
  for (let i = 2; i < n; i++) {
    if (n % i == 0) return false;
  }
  return true;
}

showPrimes(20);
У меня показывает все простые числа до 20 по очереди.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 26.03.2021, 17:30   #5
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

может у чувака всплывашки заблокированы?
имхо проще и правильнее в консоли результат смотреть
console.log(i) вместо alert()
ADSoft вне форума Ответить с цитированием
Старый 26.03.2021, 17:38   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
имхо проще и правильнее в консоли
Согласен. Устал тыкать OK в каждом алерте
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 27.03.2021, 21:57   #7
Xandr555
 
Регистрация: 15.03.2021
Сообщений: 6
По умолчанию

Спасибо.
Xandr555 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск с возвратом Filin_ Помощь студентам 2 15.02.2020 17:52
C++ Алгоритм с возвратом Vitaliya_1619 Помощь студентам 13 01.07.2014 13:09
минимум функции методом случайного поиска с возвратом swat16 Помощь студентам 0 07.04.2012 14:58
Алгоритм с возвратом Галания Общие вопросы Delphi 1 16.05.2011 15:30
Проблемы с возвратом значения из функции coolartemka JavaScript, Ajax 4 03.05.2011 23:43