Elementor Header #8

61. Условия внутри тела цикла

Иногда в процессе обхода коллекций данных или выполнения повторяющихся операций требуется проверить некоторые условия. Условия внутри тела цикла позволяют выполнить различные действия в зависимости от того, соответствует ли текущий элемент или состояние заданным критериям. Это может быть полезно для фильтрации данных, модификации элементов или выполнения специфических действий.

В этом уроке мы рассмотрим, как использовать условные конструкции внутри циклов для выполнения различных операций в зависимости от условий.

Основные концепции

Использование if внутри цикла

Вы можете использовать условные конструкции, такие как if, внутри цикла для выполнения различных действий на основе условий.

				
					let numbers = [1, 2, 3, 4, 5];
for (let i = 0; i < numbers.length; i++) {
    if (numbers[i] % 2 === 0) {
        console.log(numbers[i] + " is even");
    } else {
        console.log(numbers[i] + " is odd");
    }
}

				
			

В этом примере мы используем условие if для проверки, является ли число чётным или нечётным, и выводим соответствующее сообщение.

Использование else if внутри цикла

Если у вас есть несколько условий, которые нужно проверить, можно использовать конструкцию else if.

				
					let scores = [85, 72, 55, 90, 67];
for (let i = 0; i < scores.length; i++) {
    if (scores[i] >= 90) {
        console.log("Grade A");
    } else if (scores[i] >= 80) {
        console.log("Grade B");
    } else if (scores[i] >= 70) {
        console.log("Grade C");
    } else {
        console.log("Grade D");
    }
}

				
			

В этом примере мы присваиваем оценки на основе диапазонов значений, используя else if.

Использование switch внутри цикла

Иногда условие может быть сложным, и использование конструкции switch может сделать код более читаемым.

				
					let fruits = ["apple", "banana", "cherry", "date"];
for (let i = 0; i < fruits.length; i++) {
    switch (fruits[i]) {
        case "apple":
            console.log("Apple found");
            break;
        case "banana":
            console.log("Banana found");
            break;
        case "cherry":
            console.log("Cherry found");
            break;
        default:
            console.log("Other fruit");
            break;
    }
}

				
			

В этом примере мы используем switch для проверки каждого элемента массива фруктов и вывода соответствующего сообщения.

Прерывание и продолжение цикла

Вы можете использовать ключевые слова break и continue для управления циклом в зависимости от условий.

break: Прерывает выполнение текущего цикла.

				
					let numbers = [1, 2, 3, 4, 5];
for (let i = 0; i < numbers.length; i++) {
    if (numbers[i] === 3) {
        console.log("Found 3, stopping loop.");
        break;
    }
    console.log(numbers[i]);
}

				
			

continue: Пропускает текущую итерацию и переходит к следующей.

				
					let numbers = [1, 2, 3, 4, 5];
for (let i = 0; i < numbers.length; i++) {
    if (numbers[i] % 2 === 0) {
        continue;
    }
    console.log(numbers[i] + " is odd");
}

				
			

Распространённые ошибки

Отсутствие блока кода в if-условии:

Ошибка: Отсутствие фигурных скобок в if-условии может привести к неожиданным результатам.

				
					let numbers = [1, 2, 3, 4, 5];
for (let i = 0; i < numbers.length; i++) {
    if (numbers[i] % 2 === 0)
        console.log(numbers[i] + " is even");
    else
        console.log(numbers[i] + " is odd"); // Всегда выводится
}

				
			

Исправление: Используйте фигурные скобки для определения блока кода.

				
					let numbers = [1, 2, 3, 4, 5];
for (let i = 0; i < numbers.length; i++) {
    if (numbers[i] % 2 === 0) {
        console.log(numbers[i] + " is even");
    } else {
        console.log(numbers[i] + " is odd");
    }
}

				
			

Неправильное использование break и continue:

Ошибка: Неправильное использование break или continue может привести к неожиданным результатам в логике цикла.

				
					let numbers = [1, 2, 3, 4, 5];
for (let i = 0; i < numbers.length; i++) {
    if (numbers[i] % 2 === 0) {
        break;
    }
    console.log(numbers[i]); // Не выводится, так как цикл прерывается на первом чётном числе
}

				
			

Исправление: Убедитесь, что break и continue используются согласно логике, которую вы хотите реализовать.

				
					let numbers = [1, 2, 3, 4, 5];
for (let i = 0; i < numbers.length; i++) {
    if (numbers[i] % 2 === 0) {
        continue;
    }
    console.log(numbers[i]); // Выводит нечётные числа
}

				
			

Заключение

Использование условий внутри циклов позволяет выполнять различные действия на основе текущих элементов или состояния. Это полезно для фильтрации, модификации и анализа данных в процессе выполнения цикла. Важно избегать распространённых ошибок, таких как отсутствие фигурных скобок и неправильное использование break и continue, чтобы обеспечить правильную логику выполнения кода.

Тестовое задание

  1. Напишите программу, которая:

    • Перебирает массив чисел и выводит только те числа, которые больше 10.
    • Для каждого числа, которое делится на 3, выводит сообщение «Divisible by 3».
    • Если число меньше 5, пропускает его (использует continue).
  2. Реализуйте функцию, которая принимает массив строк и возвращает массив, содержащий только те строки, которые начинаются с буквы «A».

  3. Напишите функцию, которая:

    • Перебирает массив объектов, каждый объект содержит имя и возраст.
    • Выводит имена всех людей старше 18 лет.
    • Если возраст меньше 10 лет, пропускает объект (использует continue).

Решите все задания, чтобы практиковаться в обходе строк и избегать распространённых ошибок.

logo