
JavaScript
Помогите разобрать след код на JS
Детально разобрать этот код:


Привет, логика работает=) Это хорошо! Рекомендую открыть код который в точности как на картинке в одном окне и этот текст в другом для сравнения
По коду
2я) Строка объявляется переменная "n" которая будет в дальнейшем задействована для манипуляций с выводом чисел с второго цикла на экран
3я) Строка, объявление цикла который делает две вещи:
1- Проверяет корректность ввода
2 - Задействует второй цикл для вывода на экран
5я) Строка запрос ввода числа со стороны пользователя и сохранение результатов в переменную "х" также число по умолчанию задается 10
6я) Проверка условия на корректность ввода от пользователя,
1- Является ли введенное числом ИЛИ
2 - Является ли ввод больше 100 ИЛИ
3 - является ли ввод отрицательным числом (меньше нуля)
8я) Строка если ДА (true) значит вывод предупреждения что ввод что надо ввести корректное число)
9я) Строка "J" уменьшается на 1, делается это для того чтобы сбросить его значение до нуля, чтобы запустить цикл (Интересный подход, я такого не встречал) То есть цикл подходит к концу и тут
10я) Строка говорит мол всё мы дальше не идем, переходим к следующему кругу цикла. А тут оп, и переменная J у нас уже равняется НУЛЮ. цикл запускается опять пока все 3 условия в строке 6 будут НЕТ (false). Если так тогда получается переход к 2-му циклу в
12я) Строка, цикл. вывод числа N по заданным параметрам
1 - "i" начинается с 3
2 - пока "i" меньше выражения 2 х (ввод пользователя) + 1 то на каждом кругу цикла мы к текущему "i" добавляем 2
14я) Строка тело цикла производится вывод на экран числа N в начале оно у нас равнялось единице.
15я) Строка меняем переменную N (n = n+ i) краткая форма n+=i
Как-то так, надеюсь было полезно)))))
По коду
2я) Строка объявляется переменная "n" которая будет в дальнейшем задействована для манипуляций с выводом чисел с второго цикла на экран
3я) Строка, объявление цикла который делает две вещи:
1- Проверяет корректность ввода
2 - Задействует второй цикл для вывода на экран
5я) Строка запрос ввода числа со стороны пользователя и сохранение результатов в переменную "х" также число по умолчанию задается 10
6я) Проверка условия на корректность ввода от пользователя,
1- Является ли введенное числом ИЛИ
2 - Является ли ввод больше 100 ИЛИ
3 - является ли ввод отрицательным числом (меньше нуля)
8я) Строка если ДА (true) значит вывод предупреждения что ввод что надо ввести корректное число)
9я) Строка "J" уменьшается на 1, делается это для того чтобы сбросить его значение до нуля, чтобы запустить цикл (Интересный подход, я такого не встречал) То есть цикл подходит к концу и тут
10я) Строка говорит мол всё мы дальше не идем, переходим к следующему кругу цикла. А тут оп, и переменная J у нас уже равняется НУЛЮ. цикл запускается опять пока все 3 условия в строке 6 будут НЕТ (false). Если так тогда получается переход к 2-му циклу в
12я) Строка, цикл. вывод числа N по заданным параметрам
1 - "i" начинается с 3
2 - пока "i" меньше выражения 2 х (ввод пользователя) + 1 то на каждом кругу цикла мы к текущему "i" добавляем 2
14я) Строка тело цикла производится вывод на экран числа N в начале оно у нас равнялось единице.
15я) Строка меняем переменную N (n = n+ i) краткая форма n+=i
Как-то так, надеюсь было полезно)))))
Редкостный бред. Всего лишь вводим натуральное число x не больше 100 (здесь в программе уже ошибка) и выводим суммы 3, 3+5, 3+5+7, ..3 + 5 + .+(2x+1).
1. Сравнение NaN с числом - всегда ложь. Отдельная проверка на NaN не требуется.
2. Оборачивать всё в цикл for - бред сивой кобылы. Сначала отдельный цикл ввода числа и проверки корректности его значения (и это НЕ цикл for), а потом отдельный цикл выдачи результатов.
3. Сумма последовательных нечётных чисел (начиная с 1) равна квадрату длины последовательности. В данном случае надо всего лишь отнять 1 от этого квадрата.
let x;
do { x = parseInt(prompt('Введите целое число 1..100')); } while (!(x >= 1 && x <= 100));
++x;
for (let i = 2; i <= x; ++i) { alert(i * i - 1); }
Если хочешь точно как в исходном коде, то:
while (1) {
x = parseInt(prompt('Введите целое число 1..100'));
if (x >= 1 && x <= 100) { break; } else { alert('Введите корректное число'); }
}
1. Сравнение NaN с числом - всегда ложь. Отдельная проверка на NaN не требуется.
2. Оборачивать всё в цикл for - бред сивой кобылы. Сначала отдельный цикл ввода числа и проверки корректности его значения (и это НЕ цикл for), а потом отдельный цикл выдачи результатов.
3. Сумма последовательных нечётных чисел (начиная с 1) равна квадрату длины последовательности. В данном случае надо всего лишь отнять 1 от этого квадрата.
let x;
do { x = parseInt(prompt('Введите целое число 1..100')); } while (!(x >= 1 && x <= 100));
++x;
for (let i = 2; i <= x; ++i) { alert(i * i - 1); }
Если хочешь точно как в исходном коде, то:
while (1) {
x = parseInt(prompt('Введите целое число 1..100'));
if (x >= 1 && x <= 100) { break; } else { alert('Введите корректное число'); }
}
А более наркомански форматировать код не пробовал?)))
Нияз Бариев
^^)
Зачем в этом копаться? И так видно, что говнокод. Одни только отступы уже делают его нечитабельным.
первый курс института, всё ясно
Похожие вопросы
- Ребят помогите с кодом пожалуйста (JS, Googl Apps Sсript)
- Что делает этот код на JS?
- Помогите написать код на JS
- Не могу понять почему код на js не работает.
- Помогите, пожалуйста, понять замыкания в JS!
- Помогите разобраться с кодом (JavaScript)
- Пожалуйста, помогите с простым кодом JavaScript
- Помогите решить два кода на javascript, чтобы потом понимать как решать похожие
- Помогите, пожалуйста, написать js код для обновления ссылки
- Почему js код отрабатывает 1 раз?
От души)