JavaScript · Синтаксис · Начальный уровень

Условные операторы 2

11 задач

Дополнительная практика по условным операторам в JavaScript: проверки строк, длины текста, символов, срезов через методы строк, логических операторов &&/|| и простых сценариев ввода.

Строковые операции для условий

#
Задачи со строками на этом уровне требуют знать, какие строковые методы использовать для проверок. В JavaScript есть удобный набор для этого. Доступ к символам через скобочную нотацию. JavaScript не имеет отрицательных индексов, но метод at() имеет: ```javascript const text = "JavaScript"; console.log(text[0]); // J — первый символ console.log(text.at(-1)); // t — последний символ console.log(text.at(-2)); // p — предпоследний ``` Срез использует slice(start, end). Синтаксис похож на Python, но без шага: ```javascript const text = "Hello world"; console.log(text.slice(0, 4)); // Hell — первые 4 символа console.log(text.slice(2, 8)); // llo wo ``` Если второй аргумент пропустить — slice идёт до конца строки. Для проверки подстроки и префикса/суффикса: ```javascript text.includes("@") // true, когда "@" есть где-то в строке text.startsWith("Py") // true, когда text начинается с "Py" text.endsWith("on") // true, когда text заканчивается на "on" ``` Все три чувствительны к регистру. "python".startsWith("Py") — false. Длина строки — это свойство, а не метод: ```javascript text.length // количество символов — без скобок ``` Распространённая ошибка — написать text.length() — это выбросит TypeError.

Паттерны из задач

#
Перед обращением к символам по конкретному индексу проверяйте, что строка достаточно длинная: ```javascript const text = prompt("Введите строку: "); if (text.length > 10) { console.log(text[0], text.at(-1)); } else { console.log("Слишком короткая"); } ``` Для сравнений без учёта регистра — преобразуйте к нижнему регистру сначала. toLowerCase() возвращает новую строку: ```javascript const text = prompt("Введите фразу: "); if (text.toLowerCase() === "hello") { console.log("И вам привет!"); } else if (text.toLowerCase() === "goodbye") { console.log("До свидания!"); } else { console.log("Не понимаю"); } ``` Комбинирование проверки длины с проверкой содержимого — && вычисляется слева направо, поэтому если проверка длины не пройдёт, JavaScript пропустит остальное: ```javascript const text = prompt("Введите сообщение: "); if (text.length > 6 && text.at(-1) === "!") { console.log("Эмоциональное сообщение"); } else { console.log("Обычное сообщение"); } ``` Проверка диапазона длин: ```javascript if (text.length >= 5 && text.length <= 10) { console.log("Подходящая длина"); } ``` В JavaScript нет цепочечных сравнений Python — всегда нужны два отдельных сравнения через &&.
01

Первый и последний символ.

#

Пользователь вводит строку. Если длина строки больше 10 символов — выведите первый и последний символ, иначе — выведите "Строка слишком короткая".

let text = "JavaScript course";
Решение
let text = "JavaScript course";
if (text.length > 10) {
    console.log(text[0], text[text.length - 1]);
} else {
    console.log("Строка слишком короткая");
}

// или так можно: сохранить символы в переменные
let text = "JavaScript course";

if (text.length > 10) {
    let first = text[0];
    let last = text[text.length - 1];
    console.log(first, last);
} else {
    console.log("Строка слишком короткая");
}
02

Строка начинается с A.

#

Пользователь вводит строку. Если строка начинается с буквы "A" или "a" — выведите "Начинается с A", иначе — "Начинается с другой буквы". Можно использовать методы строк.

let text = "Alice";
Решение
let text = "Alice";
if ((text.startsWith("A")) || (text.startsWith("a"))) {
    console.log("Начинается с A");
} else {
    console.log("Начинается с другой буквы");
}
03

Первые четыре символа.

#

Пользователь вводит строку. Если длина строки больше 8 символов — выведите первые 4 символа, иначе — выведите всю строку.

let text = "JavaScript";
Решение
let text = "JavaScript";
if (text.length > 8) {
    console.log(text.slice(0, 4));
} else {
    console.log(text);
}

// или так можно: сначала подготовить фрагмент
let text = "JavaScript";
let part;

if (text.length > 8) {
    part = text.slice(0, 4);
} else {
    part = text;
}

console.log(part);
04

Эмоциональное сообщение.

#

Пользователь вводит строку. Если длина строки больше 6 символов и последний символ — "!" — выведите "Эмоциональное сообщение", иначе — "Обычное сообщение".

let text = "JavaScript!";
Решение
let text = "JavaScript!";
if ((text.length > 6) && (text[text.length - 1] === "!")) {
    console.log("Эмоциональное сообщение");
} else {
    console.log("Обычное сообщение");
}

// или так можно через метод endsWith
let text = "Привет!";

if (text.length > 6 && text.endsWith("!")) {
    console.log("Эмоциональное сообщение");
} else {
    console.log("Обычное сообщение");
}
05

Поиск спецсимволов.

#

Пользователь вводит строку. Если строка содержит символ "@" или символ "#" — выведите "Спецсимвол найден", иначе — "Спецсимволов нет".

let text = "[email protected]";
Решение
let text = "[email protected]";
if ((text.includes("@")) || (text.includes("#"))) {
    console.log("Спецсимвол найден");
} else {
    console.log("Спецсимволов нет");
}

// или так можно: проверять символы по очереди
let text = "hello@site";

if (text.includes("@")) {
    console.log("Спецсимвол найден");
} else if (text.includes("#")) {
    console.log("Спецсимвол найден");
} else {
    console.log("Спецсимволов нет");
}
06

Приветствие по имени и фамилии.

#

Пользователь вводит имя и фамилию. Если и имя, и фамилия не пустые — выведите приветствие в формате: "Привет, Имя Фамилия!" (используйте шаблонную строку (template literal)), иначе — "Введите корректные данные".

let name = "Alex";
let surname = "Smith";
Решение
let name = "Alex";
let surname = "Smith";
if ((name) && (surname)) {
    console.log(`Привет, ${name} ${surname}!`);
} else {
    console.log("Введите корректные данные");
}

// или без шаблонной строки, через склеивание строк
let name = "Alex";
let surname = "Smith";

if (name && surname) {
    console.log("Привет, " + name + " " + surname + "!");
} else {
    console.log("Введите корректные данные");
}
07

Фрагмент с 3-го по 8-й символ.

#

Пользователь вводит строку. Если длина строки больше 10 символов — выведите фрагмент строки через slice с 3-го (включительно) по 8-й символ (включительно), иначе — выведите "Недостаточно символов".

let text = "JavaScript course";
Решение
let text = "JavaScript course";
if (text.length > 10) {
    console.log(text.slice(2, 8));
} else {
    console.log("Недостаточно символов");
}
08

Первый и последний в сообщении.

#

Пользователь вводит строку. Если строка не пустая — выведите сообщение: "Первый символ: X, последний символ: Y" (используйте шаблонную строку (template literal)), иначе — "Пустая строка".

let text = "JavaScript";
Решение
let text = "JavaScript";
if (text) {
    console.log(`Первый символ: ${text[0]}, последний символ: ${text[text.length - 1]}`);
} else {
    console.log("Пустая строка");
}

// или так можно: заранее сохранить первый и последний символ
let text = "JavaScript";

if (text) {
    let first = text[0];
    let last = text[text.length - 1];
    console.log(`Первый символ: ${first}, последний символ: ${last}`);
} else {
    console.log("Пустая строка");
}
09

Подходящая длина строки.

#

Пользователь вводит строку. Если длина строки от 5 до 10 символов включительно — выведите "Подходящая длина", иначе — "Неподходящая длина".

let text = "JavaScript";
Решение
let text = "JavaScript";
if (5 <= text.length && text.length <= 10) {
    console.log("Подходящая длина");
} else {
    console.log("Неподходящая длина");
}

// второй вариант: то же самое с отдельной переменной length
let text = "course";
let length = text.length;

if (length >= 5 && length <= 10) {
    console.log("Подходящая длина");
} else {
    console.log("Неподходящая длина");
}
10

Похоже на JavaScript.

#

Пользователь вводит строку. Если строка начинается с "Java" или заканчивается на "Script" — выведите "Похоже на JavaScript", иначе — "Не похоже на JavaScript".

let text = "JavaScript";
Решение
let text = "JavaScript";
if ((text.startsWith("Java")) || (text.endsWith("Script"))) {
    console.log("Похоже на JavaScript");
} else {
    console.log("Не похоже на JavaScript");
}
11

Привет или пока.

#

"Привет - Пока программа" Если пользователь введет: Привет, привет, приВет или ПРИВЕТ - ответить ему "И тебе Привет!" Если пользователь введет: Пока, ПоКа, и тд - ответить ему "Адьос!".

let text = "Привет";
Решение
let text = "Привет";
if (text.toLowerCase() === "привет") {
    console.log("И тебе привет!");
} else if (text.toLowerCase() === "пока") {
    console.log("Адьос!");
} else {
    console.log("Не, я не разговариваю с незнакомыми людьми! Адьос!");
}