Menu
Coddy logo textTech

Jump Statements (goto)

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

Оператор goto в C# предоставляет способ передачи управления непосредственно к помеченному оператору в том же методе.

Создайте метку в вашем коде:

start:

Используйте оператор goto для перехода к этой метке:

goto start;

Вот простой пример, который использует goto для создания цикла:

int i = 0;

start:
if (i < 5)
{
    Console.WriteLine(i);
    i++;
    goto start;
}

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

0
1
2
3
4

Хотя goto существует в C#, в целом рекомендуется использовать структурированные операторы управления потоком (if, for, while и т.д.) вместо него, поскольку они делают код более читаемым и поддерживаемым.

challenge icon

Задание

Легко

Создайте метод с именем ProcessCommands, который принимает один аргумент:

  • Строку (command), содержащую команду для обработки.

Метод должен реализовать простой процессор команд с использованием операторов goto:

  • Если команда равна "start", выведите "Starting process" и затем перейдите к метке "end"
  • Если команда равна "stop", выведите "Stopping process" и затем перейдите к метке "end"
  • Если команда равна "pause", выведите "Pausing process" и затем перейдите к метке "end"
  • Если команда любая другая, выведите "Unknown command" и затем перейдите к метке "end"
  • У метки "end" выведите “Command processed”

Шпаргалка

Оператор goto передает управление непосредственно к помеченному оператору в том же методе.

Создайте метку:

start:

Перейти к метке с помощью goto:

goto start;

Пример использования goto для создания цикла:

int i = 0;

start:
if (i < 5)
{
    Console.WriteLine(i);
    i++;
    goto start;
}

Хотя goto существует в C#, структурированные операторы управления потоком (if, for, while и т.д.) в целом рекомендуются для лучшей читаемости и поддерживаемости кода.

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

using System;

public class Program
{
    public static void ProcessCommands(string command)
    {
        // Напишите свой код здесь
    }
    
    public static void Main(string[] args)
    {
        string command = Console.ReadLine();
        ProcessCommands(command);
    }
}
quiz iconПроверьте себя

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

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