Menu
Coddy logo textTech

Break and Continue

Часть раздела Логика и управление потоком путешествия по C# на Coddy — урок 21 из 66.

В C#, break и continue являются операторами, которые дают вам больший контроль над выполнением цикла.

Оператор break

Оператор break немедленно выходит из цикла:

for (int i = 1; i <= 10; i++)
{
    if (i == 5)
    {
        break; // Выйти из цикла, когда i равно 5
    }
    Console.WriteLine(i);
}

После выполнения приведенного выше кода вывод будет:

1
2
3
4

Цикл останавливается, как только i равно 5, и выполнение продолжается с кодом после цикла.

Оператор continue

Оператор continue пропускает остальную часть текущей итерации и переходит к следующей итерации:

for (int i = 1; i <= 5; i++)
{
    if (i == 3)
    {
        continue; // Пропустить остаток этой итерации
    }
    Console.WriteLine(i);
}

После выполнения приведённого выше кода вывод будет следующим:

1
2
4
5

Значение 3 не выводится, потому что оператор continue пропускает Console.WriteLine(i) для этой итерации.

challenge icon

Задание

Легко

Напишите метод под названием ProcessNumbers, который принимает массив целых чисел в качестве параметра. Метод должен:

  1. Выводить все числа в массиве
  2. Пропускать вывод любых отрицательных чисел (использовать continue)
  3. Остановить обработку, если встретит число больше 100 (использовать break)
  4. Вернуть сумму всех чисел, которые были выведены

Шпаргалка

Оператор break немедленно выходит из цикла:

for (int i = 1; i <= 10; i++)
{
    if (i == 5)
    {
        break; // Выйти из цикла, когда i равно 5
    }
    Console.WriteLine(i);
}

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

for (int i = 1; i <= 5; i++)
{
    if (i == 3)
    {
        continue; // Пропустить остаток этой итерации
    }
    Console.WriteLine(i);
}

Попробуйте сами

using System;

public class Program
{
    public static int ProcessNumbers(int[] numbers)
    {
        // Напишите свой код здесь
        return 0;
    }
    
    public static void Main(string[] args)
    {
        // Создаем тестовый массив для немедленного тестирования
        int[] numbers = { 5, -3, 10, 15, -7, 105, 20 };
        
        int sum = ProcessNumbers(numbers);
        Console.WriteLine("Sum: " + sum);
        
        // Также пробуем с пользовательским вводом, если он предоставлен
        try
        {
            string input = Console.ReadLine();
            if (!string.IsNullOrEmpty(input))
            {
                string[] parts = input.Split(',');
                
                int[] inputNumbers = new int[parts.Length];
                for (int i = 0; i < parts.Length; i++)
                {
                    inputNumbers[i] = int.Parse(parts[i].Trim());
                }
                
                int inputSum = ProcessNumbers(inputNumbers);
                Console.WriteLine("Input Sum: " + inputSum);
            }
        }
        catch (Exception)
        {
            // Если возникла ошибка с вводом, просто продолжаем с результатом примера
        }
    }
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком