카테고리 없음

Break / Continue / Goto 문

Korokke 2022. 5. 9. 14:32

Break 문

현재 실행 중인 반복문이나 switch문의 실행을 중단하고자 할 때 사용한다.

static void Main(string[] args)
        {
            int i = 0;
            while(i >= 0)
            {
                if(i == 10)
                {
                    break;
                }
                Console.WriteLine(i++);
            }
            Console.WriteLine("Break");
        }

결과값:

0
1
2
3
4
5
9
7
8
9
Break

Continue 문

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

continue 문은 가독성이 좋다는 장점이 있다. 이것은 코드가 복잡하고 길어질 수록 더욱 확연하게 느낄 수 있다.

static void Main(string[] args)
        {
            for (int i = 0; i < 10; i++)
            {
                if(i == 3)
                {
                    continue;
                }
                Console.WriteLine(i);	// 0 1 2 4 5 6 7 8 9 출력
            }
        }

Goto 문

goto문은 레이블이 가리키는 곳으로 바로 뛰어넘어간다.

- goto 문의 문법:

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

 

- 예제 1:

static void Main(string[] args)
        {
            Console.WriteLine(" 1 ");
            goto JUMP;					// 여기서

            Console.WriteLine(" 2 ");
            Console.WriteLine(" 3 ");

            JUMP:					// 여기로 이동
            Console.WriteLine(" 4 ");
        }

- 예제 2:

static void Main(string[] args)
        {
            Console.WriteLine("종료 조건(숫자)을 입력하세요 : ");
            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++)
                    {
                        if(exit_number++ == input_number)
                        {
                            goto EXIT_FOR;
                            Console.WriteLine(exit_number);
                        }
                    }
                }
            }

            goto EXIT_PROGRAM;

            EXIT_FOR:
            Console.WriteLine("EXIT nested for...");

            EXIT_PROGRAM:
            Console.WriteLine("EXIT PROGRAM");
        }

3개의 for 반복으로 인해 exit_number++ 가 실행되는 횟수는 총 2 * 2 * 3 = 12회이다.

그 안에 12행의 goto EIT_FOR를 못 만나면 31행의 goto EXIT_PROGRAM을 만나고 이로 인해 EXIT_PROGAM 행으로 이동한다 아닐경우 EXIT_FOR으로 이동한다.

참조: 이것이 C#이다