결정 및 분기(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#에서는 조건이 상수 값이어야 합니다. 예를 들어, 식을 값 범위와 비교할 수는 없습니다.