C#

C# - goto

Dev_Jen 2025. 7. 4. 11:39
반응형

✅ goto란?

goto는 프로그램의 흐름을 특정 위치(레이블)로 "강제로" 이동시키는 문법이야.

goto 레이블이름;
...
레이블이름:
    실행할 코드;

✅ 아주 단순히 말하면:

"코드 중간 어딘가로 점프!"


✅ 간단한 예제

int i = 0;

start:
Console.WriteLine(i);
i++;

if (i < 5)
    goto start;  // start로 이동 (반복처럼 동작)

🟰 위 코드는 사실상 while문처럼 동작해.


✅ goto는 언제 쓰나?

  • switch문에서 중첩된 case 건너뛸 때
  • 에러 발생 시 빠르게 특정 cleanup으로 이동
  • 매우 드물게 복잡한 상태 머신 구조

✅ switch문에서의 goto

 
int num = 2;

switch (num)
{
    case 1:
        Console.WriteLine("One");
        break;
    case 2:
        Console.WriteLine("Two");
        goto case 1; // case 1으로 이동!
    default:
        Console.WriteLine("Default");
        break;
}

📝 출력:

Two  
One

✅ 사용 시 주의사항 ❗

  • goto는 코드를 복잡하게 만들고,
  • 흐름을 예측하기 어렵게 만들기 때문에
  • 되도록 사용하지 않는 것이 원칙이야

📌 대부분의 경우 for, while, if로 해결 가능!


✅ 요약 정리

항목 설명
goto 코드의 흐름을 특정 지점으로 강제 이동
사용처 switch case 점프, 에러 처리, 특별한 상황
추천 여부 ❌ 일반 코드에서는 사용 자제
대체 if, while, return, break, continue 등

✅ 한 줄 요약

goto는 레이블로 점프하는 문법이지만, 가독성 나빠서 정말 필요한 상황에서만 조심스럽게 사용해야 한다.

 

C에서 배웠어서 원래 알고있는 내용이였지만 C#에도 있는줄은 몰랐다 ㅎㅎ..

아무래도 원하는곳으로 이동할 수 있게 만들어주지만 너무 많이 사용하게되면 코드가 복잡해지고 왔다갔다해서 더 이상해질수도 있을듯하다. 사용한다면 정말 중요한 부분에만 사용하는걸로..

반응형