C#

[C#] 점프문 (break, continue, goto, return, throw)

homoon 2023. 5. 29. 14:35

1. break

설명
현재 실행 중인 반복문이나 switch 문의 실행을 중단 할때 사용

예시

/*
출력
계속할가요?(예/아니요) :
계속할가요?(예/아니요) :
계속할가요?(예/아니요) : 아니요
 */
namespace Break
{
    internal class Program
    {
        static void Main(string[] args)
        {
            while (true)
            {
                Console.Write("계속할가요?(예/아니요) : ");
                string answer = Console.ReadLine();

                if (answer == "아니요")
                {
                    break;
                }
            }
        }
    }
}

2. continue

반복문을 멈추게 하는 break 문과는 달리, continue 문은 한 회 건너 뛰어 반복을 계속 수행하게 하는 기능을 함

예시

/*
실행
1 : 홀수
3 : 홀수
5 : 홀수
7 : 홀수
9 : 홀수
 */
namespace Continue
{
    internal class Program
    {
        static void Main(string[] args)
        {
            for( int i = 0; i < 10; i++ )
            {
                if (i % 2 == 0)
                    continue;

                Console.WriteLine($"{i} : 홀수");
            }
        }
    }
}

3.goto

형식
goto 레이블;

레이블 : 
    // 이어지는 코드;

예시

/*
실행
종료 조건(숫자)을 입력하세요 : 5
1
2
3
4
5

Exit nested for ...
Exit program ...

실행 2
종료 조건(숫자)을 입력하세요 : 13
1
2
3
4
5
6
7
8
9
10
11
12
Exit program ...
 */
namespace Goto
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.Write("종료 조건(숫자)을 입력하세요 : ");

            string input = Console.ReadLine();

            int input_number = Convert.ToInt32(input);

            int exit_number = 0;

            for (int i = 0; i < 2; i++)
            {
                for (int j = 0; j < 2; j++)
                {
                    for (int k = 0; k < 3; k++)
                    {
                        // 조건이 참이면 EXIT_FOR 레이블로 점프
                        if (exit_number++ == input_number)
                            goto EXIT_FOR;

                        Console.WriteLine(exit_number);
                    }
                }
            }

            // EXIT_FOR레이블을 만나지 않기 위해 점프
            goto EXIT_PROGRAM;

        EXIT_FOR:
            Console.WriteLine("\nExit nested for ... ");

        EXIT_PROGRAM:
            Console.WriteLine("Exit program ... ");
        }
    }
}

4. retrun

5. throw