C#
C# 5. goto 문
Jan. 24, 2022, 11:35 p.m.
프로그래밍을 하다 보면 여러가지 루프를 구성해야할 필요가 있습니다. for, while, foreach등으로 말이죠.
루프를 돌리다 보면 특정 조건에서 그 루프를 벗어나게 해야할 필요도 있는데요, 그럴때 보통 점프문이라고 하는 키워드를 사용합니다. return, break, continue, goto 가 여기에 해당됩니다.
return, break, continue는 너무나 기본적인 문법이기 때문에 이번 포스트에서는 goto문에 대해서 알아보도록 하겠습니다.
1. goto 문
함수 안에서 루프를 돌리다가 그 함수의 특정 레이블로 표시된 다른부분으로 이동하여 계속해서 명령어를 실행할 수 있게 합니다. 그 부분이 루프 바깥 부분이어도 상관이 없죠.
기본적인 사용법은 아래와 같습니다.
public void int hi() {
for ( int i =0; i < 100; i++)
{
if ( i > 50)
goto hello;
}
hello:
//Do something
}
for 문을 돌다가 if문의 조건이 만족되면 hello라고 레이블되어있는 부분으로 옮겨가 코드를 실행하죠. 사실 이 부분에서는 break;를 써도 무방합니다. goto문은 가독성을 떨어뜨립니다. 그렇지만 루프를 빠져나가는 조건이 여러개고 빠져나간 다음 명령어가 달라야 한다면 써보는것도 나쁘지 않을 것 같네요.
2. switch 문에서 goto
switch 문에서는 goto문을 break문 대신에 사용하여 더욱 유용하게 써볼 수 있습니다. 예시를 먼저 보겠습니다.
private static decimal CalculatePrice(CoffeChoice choice) {
decimal price = 0;
switch (choice)
{
case CoffeChoice.Plain:
price += 10.0m;
break;
case CoffeChoice.WithMilk:
price += 5.0m;
goto case CoffeChoice.Plain;
case CoffeChoice.WithIceCream:
price += 7.0m;
goto case CoffeChoice.Plain;
}
return price;
}
이렇게 레이블 대신에 case를 넣으면 해당 case로 이동하게 됩니다. 응용할 방법이 무궁무진 하겠네요!
이상으로 C#의 goto문에 대해서 알아보았습니당
goto
Log in and leave a comment