goto 문법
goto 문은 프로그램의 실행 흐름을 특정 레이블 ( Label ) 로 강제로 이동시키는 명령문이다.
goto 문은 C# 에서는 거의 쓰이지 않지만, 옛날 언어 ( C , C++ ) 의 흐름 제어 방식을 그대로 유지하고 있는 명령어이다.
즉 , 코드 실행 순서를 직접 "점프"시키는 기능이다.
하지만 가독성과 유지보수성이 크게 떨어지므로, C# 에서는 반복문 , 조건문 , 메서드 분리 등으로 대체하는 것이 일반적이다.
문법
goto 레이블이름;
레이블이름:
// 실행할 코드
- 레이블이름 : 콜론 (:) 으로 끝나는 라벨 정의
- goto 레이블이름; 코드 흐름을 해당 위치로 점프
예시 코드
using System;
class Program
{
static void Main()
{
int number = 0;
start: // ← 레이블 정의
Console.Write("숫자를 입력하세요 (0 입력 시 종료): ");
number = int.Parse(Console.ReadLine());
if (number != 0)
{
Console.WriteLine($"입력한 숫자: {number}");
goto start; // ← 레이블로 점프
}
Console.WriteLine("프로그램을 종료합니다.");
}
}
실행 흐름
- start: 위치부터 실행
- 0이 아닐 경우 다시 goto start 로 점프
- 0 입력 시 종료
주의할 점
- 가독성 저하 : 프로그램 흐름이 복잡해져서 디버깅이 어렵다.
- 무한 루프 위험 : 점프 위치를 잘못 설정하면 무한 반복이 될 수 있다.
- OOP 구조에 맞지 않다 : 절차적 코딩 스타일로 유지보수성이 나쁘다.
- 대체 방법 : while , for , break , continue , return 사용 권장
정리
goto 는 코드 흐름을 레이블로 직접 점프시키는 명령문이지만 가독성과 유지보수를 해치므로 거의 사용하지 않는다.
'⭐C Sharp > 00. 문법' 카테고리의 다른 글
| 애트리뷰트 ( C# Attribute ) (0) | 2025.10.14 |
|---|---|
| IsNumeric (0) | 2025.10.08 |
| C# 콘솔 색상 제어 ( Console Color Control ) (0) | 2025.10.06 |
| IList<T> (0) | 2025.10.05 |
| 생략 ( 언더바 " _ " ) (0) | 2025.10.04 |