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 и т.д.) вместо него, поскольку они делают код более читаемым и поддерживаемым.
Задание
ЛегкоСоздайте метод с именем 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);
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Multi-dimensional Arrays
2D Arrays BasicsDeclaring and Initializing 2DAccessing 2D Array ElementsNested Loops with 2D ArraysJagged ArraysCommon Matrix OperationsRecap - Multi-dimensional4Flow Control Techniques
Early ReturnsGuard ClausesJump Statements (goto)Break and ContinueFlatten Nested Conditionals7Logical Operators Advanced
Short-Circuit EvaluationConditional Logical OperatorsOperator PrecedenceRecap - Advanced Operators2Advanced Decision Making
Multiple ConditionsComplex Boolean LogicIf vs. Switch ComparisonNested Switch StatementsRecap - Advanced Decisions5Exception Handling
Try-Catch BasicsException TypesMultiple Catch BlocksWorking with FilesFinally BlockUsing vs. Try-FinallyCustom ExceptionsRecap - Error Handling3Loop Enhancements
Loop PerformanceIterating ComplexEach Loop TypeRefactoring LoopsRecap - Optimized Loops6Null Handling
Null Reference BasicsNullable Value TypesNull Checking PatternsDefensive ProgrammingRecap - Null Safety