프로그래밍에서 의사 결정(decision making) 구조란 프로그램이 평가하거나 검증할 하나 이상의 조건을 지정하고, 그 조건이 참(true)으로 판단될 경우 실행할 문장을 정의하는 방식입니다. 필요에 따라 조건이 거짓(false)으로 판단될 때 실행할 다른 문장도 함께 지정할 수 있습니다.
C#에서는 if 문, if-else 문, switch 문 등 다양한 의사 결정 구조를 제공하며, 이를 통해 프로그램의 흐름을 유연하게 제어할 수 있습니다.
먼저 C#에서 가장 기본이 되는 if 문의 사용 예제를 살펴보겠습니다.
if 문 예제
using System;
namespace Demo {
class Program {
static void Main(string[] args) {
int x = 5;
// if 문
if (x < 20) {
/* 조건이 참이면 아래 코드 실행 */
Console.WriteLine("x is less than 20");
}
Console.WriteLine("value of x is : {0}", x);
Console.ReadLine();
}
}
}실행 결과
x is less than 20 value of x is : 5
위 예제에서 변수 x의 값은 5이며, 조건식 x < 20이 참이므로 if 블록 안의 문장이 실행되어 "x is less than 20"이 출력됩니다. 이어서 if 블록과 관계없이 항상 실행되는 Console.WriteLine을 통해 x의 값이 화면에 표시됩니다.
다음은 if-else 문의 예제입니다. if-else 문에서는 첫 번째 조건이 거짓으로 판단될 경우 else 블록에 작성된 코드가 대신 실행됩니다.
if-else 문 예제
using System;
namespace Demo {
class Program {
static void Main(string[] args) {
int x = 100;
/* 불리언(boolean) 조건 확인 */
if (x < 20) {
/* 조건이 참이면 아래 코드 실행 */
Console.WriteLine("x is less than 20");
} else {
/* 조건이 거짓이면 아래 코드 실행 */
Console.WriteLine("x is not less than 20");
}
Console.WriteLine("value of x is : {0}", x);
Console.ReadLine();
}
}
}실행 결과
x is not less than 20 value of x is : 100
이번 예제에서는 x의 값이 100이므로 조건식 x < 20이 거짓이 됩니다. 따라서 if 블록은 건너뛰고 else 블록의 문장이 실행되어 "x is not less than 20"이 출력된 것을 확인할 수 있습니다.
그 외의 의사 결정 구조
if 문과 if-else 문 외에도 C#은 다음과 같은 의사 결정 구조를 지원합니다.
if-else-if 사다리(ladder): 여러 개의 조건을 순차적으로 검사하여 처음으로 참이 되는 블록을 실행합니다.
중첩 if 문(nested if): if 문 내부에 또 다른 if 문을 작성하여 복잡한 조건 로직을 구성할 수 있습니다.
switch 문: 하나의 표현식 값에 따라 여러 분기(case) 중 하나를 선택해 실행할 때 유용하며, 조건 분기가 많은 경우 if-else 문보다 가독성이 좋습니다.