본문 바로가기

개인공부/C#

[C#] 흐름제어-점프문(Jump Statement)

■ 점프문(Jump Statement) :

 - 실행 흐름을 끊거나 실행 위치를 원하는 곳으로 이동할 때 사용

 - break, continue, goto, return, throw

 

■ Break :

 - 현재 실행 중인 반복문 혹은 switch문의 실행을 중단 할 때 사용

switch(조건식)
{
    case 상수1:
        ... 작업 내용 ...
        break;
    case 상수2:
        ... 작업 내용 ...
        break;
    default:
        ... 작업 내용 ...
        break;
}
for(초기화식; 조건식; 증감)
{
    ... 작업 내용 ...
    if(조건식)
    {
        break;
    }
    ... 작업 내용 ...
}

 

■ Example

for(int i = 0; i < 5; i++)
{
    if(i == 3)
    {
        break;
    }
    Console.WriteLine($"{i}번 출력");
}

 

Example 결과

 

■ Continue :

 - 반복문 내의 작업을 한 회 건너 뛰고 실행할 때 사용

for(초기화식; 조건식; 증감)
{
    ... 작업 내용 ...
    if(조건식)
    {
        continue;
    }
    ... 작업 내용 ...
}

 

■ Example

for (int i = 0; i < 5; i++)
{
    if (i == 3)
    {
        Console.WriteLine($"{i}번 skip");
        continue;
    }
    Console.WriteLine($"{i}번 출력");
}

 

Example 결과

 

■ goto :

 - Label이 표시된 곳으로 이동

 - 실행 흐름을 복잡하게 만들어 가독성을 떨어뜨릴 수 있기 때문에 가급적 사용 안 함

goto 레이블;
 
레이블 :
... 작업 내용 ...

■ Example

Console.WriteLine("goto Example입니다.");
goto A;

Console.WriteLine("이 내용은 출력되지 않습니다.");

A:
Console.WriteLine("goto문을 이용해 이동하였습니다.");

 

Example 결과

 

■ Return :

 - 메서드 실행을 종료 및 반환 결과가 있는 경우 결과를 반환할 때 사용

반환자료형 메소드이름()
{
    ... 작업 내용 ...
    return 반환 결과;
}

■ Example

static void Main(string[] args)
{
    string str = TestMethod();
    Console.WriteLine($"str = {str}");
}

static string TestMethod()
{
    Console.WriteLine("TestMethod 실행");
    return "반환 결과입니다.";
}

 

Example 결과

 

■ Throw :

 - 프로세스 실행 중 예외 발생 신호를 보낼 때 사용

 - 보내진 신호는 try-catch에서 받음

throw new Exception("Exception 내용");

■ Example

static void Main(string[] args)
{
    try
    {
        ThrowTestMethod(5);
    }
    catch(Exception ex)
    {
        Console.WriteLine($"{ex.Message}");
    }
}


static void ThrowTestMethod(int num)
{
    if(num == 10)
    {
        Console.WriteLine($"num은 10입니다.");
    }
    else
    {
        throw new Exception($"num은 10이 아닙니다.");
    }
}

 

Example 결과