Jump Statements (goto)
Coddy C# 여정의 논리 및 흐름 섹션에 포함된 레슨 — 66개 중 20번째.
C#의 goto 문은 동일한 메서드 내의 레이블이 지정된 문으로 제어를 직접 전달하는 방법을 제공합니다.
코드에 레이블을 생성하세요:
start:goto 문을 사용하여 해당 레이블로 이동하세요:
goto start;다음은 goto를 사용하여 루프를 만드는 간단한 예제입니다:
int i = 0;
start:
if (i < 5)
{
Console.WriteLine(i);
i++;
goto start;
}위 코드를 실행하면 출력 결과는 다음과 같습니다:
0
1
2
3
4C#에는 goto가 존재하지만, 코드의 가독성과 유지보수성을 높이기 위해 구조화된 제어 흐름 문(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;
}C#에는 goto가 존재하지만, 코드 가독성과 유지보수성을 위해 구조화된 제어 흐름 문(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