JavaScript · Синтаксис · Начальный уровень
Цикл while
Упражнения по циклу while в JavaScript: повторение действий, счётчики, суммы чисел, ввод до нужного условия, break, перебор строк и базовая обработка символов.
Краткое введение в тему и пояснения перед упражнениями (упражнения ниже):
Счётчики, накопители и паттерн «сторожевого значения»
#Обход строк с помощью while
#Упражнения:
Числа от 1 до 10.
#Выведите на печать (console.log) числа от 1 до 10 с помощью цикла while .
let i = 1;
Решение
let i = 1;
while (i <= 10) {
console.log(i);
i += 1;
}
// или так можно: условие остановки поставить внутри цикла
let i = 1;
while (true) {
if (i > 10) {
break;
}
console.log(i);
i += 1;
}
Обратный отсчёт от 10.
#Выведите числа от 10 до 1 в обратном порядке.
let i = 10;
Решение
let i = 10;
while (i >= 1) {
console.log(i);
i -= 1;
}
// или так можно: использовать условие больше нуля
let i = 10;
while (i > 0) {
console.log(i);
i -= 1;
}
Числа до введённого значения.
#Пользователь вводит число. Выведите все числа от 1 до этого числа.
let n = 5; let i = 1;
Решение
let n = 5;
let i = 1;
while (i <= n) {
console.log(i);
i += 1;
}
Только чётные до числа.
#Пользователь вводит число. Выведите только чётные числа от 1 до этого числа.
let n = 5; let i = 1;
Решение
let n = 5;
let i = 1;
while (i <= n) {
if (i % 2 === 0) {
console.log(i);
}
i += 1;
}
// второй вариант: сразу идти только по чётным числам
let n = 10;
let i = 2;
while (i <= n) {
console.log(i);
i += 2;
}
Сумма от 1 до 100.
#Найдите сумму всех чисел от 1 до 100 с помощью цикла while .
let i = 1; let total = 0;
Решение
let i = 1;
let total = 0;
while (i <= 100) {
total += i;
i += 1;
}
console.log("Сумма:", total);
// или так можно через формулу суммы от 1 до n
let total = (100 * 101) / 2;
console.log("Сумма:", total);
Сумма до введённого числа.
#Пользователь вводит число. Найдите сумму всех чисел от 1 до этого числа.
let n = 5; let i = 1; let total = 0;
Решение
let n = 5;
let i = 1;
let total = 0;
while (i <= n) {
total += i;
i += 1;
}
console.log("Сумма:", total);
Таблица умножения.
#Пользователь вводит число. Выведите таблицу умножения для этого числа от 1 до 10.
let n = 5; let i = 1;
Решение
let n = 5;
let i = 1;
while (i <= 10) {
console.log(`${n} x ${i} = ${n * i}`);
i += 1;
}
// или так можно: сначала посчитать произведение
let n = 5;
let i = 1;
while (i <= 10) {
let result = n * i;
console.log(`${n} x ${i} = ${result}`);
i += 1;
}
Пароль до правильного ввода.
#Пользователь вводит пароль. Запрашивайте пароль снова, пока он не будет равен "javascript" .
let password = "";
Решение
let password = "";
while (password !== "javascript") {
console.log("Неверный пароль");
password = "javascript"; // имитация нового ввода
}
console.log("Пароль принят");
Сумма чисел до нуля.
#Пользователь вводит числа. Программа должна считать сумму введённых чисел, пока пользователь не введёт 0 .
let total = 0; let num = 5;
Решение
let total = 0;
let num = 5;
while (num !== 0) {
total += num;
// В реальной программе здесь можно получить следующее значение.
// Для примера завершим цикл.
num = 0;
}
console.log("Сумма:", total);
Подсчёт цифр в числе.
#Пользователь вводит число. Подсчитайте, сколько цифр в этом числе. Можно без цикла решить любым способом.
let num = 5;
Решение
let num = -12345;
let count = String(Math.abs(num)).length;
console.log("Количество цифр:", count);
Слово задом наперёд.
#Выведите слово в терминал задом-наперед.
let word = "иладеп";
Решение
let word = "иладеп";
console.log(word.split('').reverse().join(''));
// или:
word = "иладеп";
let drow = "";
let index = word.length - 1;
while (index > -1) {
drow += word[index];
index -= 1;
}
console.log(drow);
Текст между одинаковыми символами.
#Тут я наверно заигрался и это задание наверно не простое. Но не страшно, давайте попробуем не спеша пошагово продумать что нужно делать. Условие: Есть строка с любой информацией, например: 'Компания ООО "Рога и Копыта" выиграли тындырындын по закупке чего-то.' Нужно из нее вырезать кусок между какими-то одинаковыми символами. Например в данном случае чтоб получить название компании, нужно вырезать вежду кавычками. Метод строк split не использовать. Нужно использовать только метод index!! Можете поэкспериментировать и решить задание без цикла и с циклом, как хотите. P.S. Понадобятся срезы, и сделайте запрос текста и запрос символа между повторением которого вырезать через input. P.P.S См. таблицу методов строк. Метод index возвращает индекс ПЕРВОГО вхождения символа в строке (второго не возвращает (если не "намутить" что он станет первым в какой-то промежуточной строке") ).
let text = "JavaScript"; let symbol = "a";
Решение
let text = 'Компания ООО "Рога и Копыта" выиграла тендер';
let symbol = '"';
let startIndex = text.indexOf(symbol);
if (startIndex === -1) {
console.log("Символ не найден");
} else {
startIndex += 1;
let newText = "";
while (startIndex < text.length) {
let char = text[startIndex];
if (char === symbol) {
break;
}
newText += char;
startIndex += 1;
}
console.log(newText);
}
Ступеньки из букв.
#Тут всё просто: Есть строка "ступеньки", выведите ее в терминал вот так: с -т --у ---п ----е -----н ------ь -------к --------и
let text = "ступеньки";
Решение
let word = "ступеньки";
let i = 0;
while (i < word.length) {
console.log("-".repeat(i) + word[i]);
i += 1;
}
Удаление пунктуации из текста.
#Есть перечень знаков пунктуации и спец. символов: punctuation = "!@#$%^&./,?|" И есть строка текста, в котрой они могут присутствовать. Сформируйте новую строку без знаков пунктуации, оставив только текст, пробелы сохранить. Так нужно вот и всё.
let punctuation = "!@#$%^&./,?|"; let text = "Наверно на этом упражнении закончим. Хватит! Мы хотим отдыхать! #@&#@&!!!";
Решение
let punctuation = "!@#$%^&./,?|";
let text = "Наверно на этом упражнении закончим. Хватит! Мы хотим отдыхать! #@&#@&!!!";
let newText = "";
let idx = 0;
while (idx < text.length) {
let char = text[idx];
if (!punctuation.includes(char)) {
newText += char;
}
idx += 1;
}
console.log(newText);