BLOG
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



Search