다음을 통해 공유


결정 및 분기(Visual C# Express)

업데이트: 2007년 11월

특정 종류의 입력 또는 계산된 값에 대한 응답으로 프로그램의 제어 흐름을 변경하는 것은 프로그램 언어의 필수적인 부분입니다. C#에서는 조건에 상관없이 코드의 새 위치로 이동하거나 조건부 테스트를 수행하는 방법으로 제어 흐름을 변경할 수 있는 기능을 제공합니다.

설명

조건부 분기의 가장 단순한 형태는 if 구문을 사용하는 것입니다. if 구문과 함께 else 절을 사용할 수 있으며 if 구문을 중첩시킬 수도 있습니다.

using System;

class Program
{
    static void Main()
    {
        int x = 1;
        int y = 1;


        if (x == 1)
            Console.WriteLine("x == 1");
        else
            Console.WriteLine("x != 1");


        if (x == 1)
        {
            if (y == 2)
            {
                Console.WriteLine("x == 1 and y == 2");
            }
            else
            {
                Console.WriteLine("x == 1 and y != 2");
            }
        }                
    }
}
참고:

C 및 C++와 달리 if 문에 부울 값이 필요하지 않습니다. 예를 들어, (a=10)과 같이 단순히 True 또는 False가 되지 않는 문은 사용할 수 없습니다. C#에서는 False를 0으로 대체하고 True를 1 또는 다른 값으로 대체할 수 없습니다.

if 및 else 키워드 뒤의 문은 이전 코드 예제의 첫 번째 if-else 문과 같이 단일 코드 줄일 수도 있고, 두 번째 if-else 문과 같이 중괄호에 포함된 문 블록일 수도 있습니다. if-else 문을 중첩시킬 수 있지만 일반적으로는 switch 문을 대신 사용하는 것이 더 좋은 프로그래밍 방법입니다.

switch 문은 지정된 식의 값에 따라 여러 동작을 수행할 수 있습니다. 조건이 만족되면 case 문과 break 키워드 사이의 코드가 실행됩니다. 다른 case 문으로 제어 흐름을 계속하려면 goto 키워드를 사용합니다.

using System;

class Program
{
    static void Main()
    {
        int x = 3;

        switch (x)
        {
            case 1: 
                Console.WriteLine("x is equal to 1");
                break;

            case 2:
                Console.WriteLine("x is equal to 2");
                break;

            case 3:
                goto default;

            default:
                Console.WriteLine("x is equal to neither 1 nor 2");
                break;
        }
    }
}

switch 문에서 실행할 코드를 결정하는 데 사용하는 식에는 int 또는 string 등의 기본 제공 데이터 형식(Visual C# Express)을 사용해야 합니다. 더 복잡한 사용자 정의 형식은 사용할 수 없습니다.

Visual Basic과 달리 C#에서는 조건이 상수 값이어야 합니다. 예를 들어, 식을 값 범위와 비교할 수는 없습니다.

참고 항목

개념

C# 언어 입문

참조

선택문(C# 참조)

점프문(C# 참조)