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);