C# 점프 문 – 하프우드 문을 종료하거나 건너뛸 때 | break, continue, return, goto

C# 점프 문 – 하프 우드 문 밖으로 점프 | break, continue, return, goto

C#에서 jump 문은 프로그램의 다른 부분으로 제어를 이전하는 데 사용됩니다.

C#에는 네 가지 유형의 점프 문이 있습니다.

1. 인터럽트 문: 현재 루프 또는 switch 문을 중단하는 데 사용됩니다.

2. 계속 선언: 루프의 현재 반복을 건너뛰고 다음 반복을 계속하는 데 사용됩니다.

3. goto 문: 프로그램의 다른 곳으로 제어를 이전하는 데 사용되는 레이블이 지정된 명령문입니다.

그러나 일반적으로 잘못된 프로그래밍 방식으로 간주되므로 주의해서 사용해야 합니다.

4. 반환 명세서: 메서드를 종료하고 호출 메서드에 값을 반환하는 데 사용됩니다.

다음은 for 루프에서 break 및 continue 문을 사용하는 방법의 예입니다.

for (int i = 0; i < 10; i++)
{
    if (i == 5)
        break; // exit the loop when i equals 5
    if (i % 2 == 0)
        continue; // skip even numbers
    Console.WriteLine(i);
}

이 예에서 break 문은 i가 5와 같을 때 루프를 종료하는 데 사용되고 continue 문은 짝수를 건너뛰고 루프의 다음 반복으로 계속 진행하는 데 사용됩니다.

Break 문:

break 키워드는 루프 또는 switch 문을 즉시 종료하는 데 사용됩니다.

일반적으로 특정 조건이 충족되고 추가 반복이나 처리가 필요하지 않을 때 사용됩니다.

다음은 while 루프에서 break 문을 사용하는 방법에 대한 예제입니다.

int i = 0;
while (i < 10)
{
    Console.WriteLine(i);
    if (i == 5)
        break; // exit the loop when i equals 5
    i++;
}

이 예제에서 break 문은 i가 5일 때 루프를 종료하는 데 사용됩니다.

break 문이 없으면 루프는 i가 10이 될 때까지 계속됩니다.

break 문은 switch 문에서 조기에 switch 블록을 종료하는 데 사용할 수도 있습니다.

예를 들어:

int num = 2;
switch (num)
{
    case 1:
        Console.WriteLine("One");
        break;
    case 2:
        Console.WriteLine("Two");
        break; // exit the switch block after printing "Two"
    case 3:
        Console.WriteLine("Three");
        break;
    default:
        Console.WriteLine("Invalid number");
        break;
}

이 예에서 num이 2이면 다음에 break 문이 사용되어 스위치 블록이 “Two”를 인쇄한 후 중간에 종료됩니다.

계속해서 다음과 같이 선언하십시오.

continue 키워드는 루프의 현재 반복을 즉시 건너뛰고 다음 반복을 계속하는 데 사용됩니다.

일반적으로 특정 조건이 충족되고 나머지 코드가 현재 반복에 대해 실행될 필요가 없을 때 사용됩니다.

다음 예제에서는 for 루프에서 continue 문을 사용하는 방법을 보여줍니다.

for (int i = 0; i < 10; i++)
{
    if (i % 2 == 0)
        continue; // skip even numbers
    Console.WriteLine(i);
}

이 예제에서 continue 문은 짝수를 건너뛰고 루프의 다음 반복을 계속하는 데 사용됩니다.

continue 문이 없으면 루프 내부의 코드는 짝수인 경우에도 i의 모든 값에 대해 실행됩니다.

continue 문은 while 또는 do-while 루프 내에서 비슷한 방식으로 사용할 수 있습니다.

예를 들어:

int i = 0;
while (i < 10)
{
    i++;
    if (i % 2 == 0)
        continue; // skip even numbers
    Console.WriteLine(i);
}

이 예제에서 continue 문은 짝수를 건너뛰고 루프의 다음 반복을 계속하는 데 사용됩니다.

continue 문이 없으면 루프 내부의 코드는 짝수인 경우에도 i의 모든 값에 대해 실행됩니다.

이동 문:

goto 문은 동일한 메서드 내에서 레이블이 지정된 문으로 제어를 전송하는 데 사용됩니다.

goto 문은 코드의 한 부분에서 일반 제어 흐름 문(예: 루프, 조건문 및 메서드 호출)으로 도달할 수 없는 코드의 다른 부분으로 점프하는 데 자주 사용됩니다.

다음은 goto 문을 사용하는 방법의 예입니다.

start:
Console.WriteLine("Enter a number:");
int num = int.Parse(Console.ReadLine());

if (num <= 0)
    goto start; // jump back to the start label

Console.WriteLine("The number you entered is: " + num);

이 예에서 goto 문은 사용자가 양수가 아닌 숫자를 입력할 때 시작 레이블로 다시 이동하는 데 사용됩니다.

goto 문이 없으면 오류 메시지를 인쇄한 후 프로그램이 종료됩니다.

goto 문을 자주 사용하면 코드를 읽고 이해하기 어려울 수 있으므로 goto 문을 자주 사용하지 않는 것이 중요합니다.

일반적으로 goto 문보다는 루프, 조건문, 메서드 호출과 같은 구조화된 제어 흐름 문을 사용하는 것이 좋습니다.

반환 문:

return 문은 메서드를 종료하고 호출 메서드에 값을 반환하는 데 사용됩니다.

return 문은 메서드가 값을 반환하는지 여부에 따라 값을 받을 수도 있고 받지 않을 수도 있습니다.

다음은 return 문을 사용하여 값을 반환하는 메서드의 예입니다.

public int Add(int a, int b)
{
    int sum = a + b;
    return sum;
}

이 예제에서 Add 메서드는 두 개의 정수를 입력 매개 변수로 사용하여 더한 다음 return 문을 사용하여 결과를 정수 값으로 반환합니다.

return 문을 값 없이 사용하여 값을 반환하지 않고 메서드를 종료할 수도 있습니다.

public void DisplayMessage(string message)
{
    if (string.IsNullOrEmpty(message))
        return; // exit the method if the message is null or empty

    Console.WriteLine(message);
}

이 예제에서 DisplayMessage 메서드는 문자열을 입력 매개 변수로 사용하고 문자열이 null인지 비어 있는지 확인하고 문자열이 null이거나 비어 있으면 return 문으로 메서드를 종료합니다.

문자열이 null이 아니거나 비어 있지 않으면 메서드는 계속해서 Console.WriteLine 문을 사용하여 메시지를 표시합니다.

return 문은 루프 또는 스위치 블록 안에 배치하여 루프 또는 스위치 문을 조기에 종료하는 데 사용할 수도 있습니다.

return 문이 실행되면 제어가 즉시 호출 메서드로 다시 전송됩니다.

또 다른 예로, switch 문 내에서 return 문을 사용하여 switch 블록을 일찍 종료하고 호출 메서드에 값을 반환할 수 있습니다.

switch 문의 return 문이 실행되면 호출 메서드에 제어가 즉시 반환되고 메서드가 종료됩니다.

다음은 return 문을 사용한 switch 문의 예입니다.

public string GetDayOfWeek(int dayNumber)
{
    switch (dayNumber)
    {
        case 0:
            return "Sunday";
        case 1:
            return "Monday";
        case 2:
            return "Tuesday";
        case 3:
            return "Wednesday";
        case 4:
            return "Thursday";
        case 5:
            return "Friday";
        case 6:
            return "Saturday";
        default:
            return "Invalid day number";
    }
}