C# 조건문 기초: if 및 if-else문을 활용한 프로그램 흐름 제어

C# 프로그래밍에서 코드의 실행 흐름을 제어하는 기본 구조는 순차, 선택(조건), 반복 세 가지로 나뉩니다. 이 중 조건 구조는 특정 상황에 따라 프로그램의 실행 경로를 분기할 때 사용됩니다.

순차 구조와 조건 구조의 필요성

순차 구조는 코드가 작성된 순서대로 위에서 아래로 한 번씩 실행되는 가장 기본적인 형태입니다. 별도의 제어문 없이도 C# 컴파일러는 기본적으로 순차 실행을 수행합니다. 하지만 문제의 복잡도가 높아지면 특정 조건에 따라 실행 경로를 분기해야 하는 경우가 발생합니다. 예를 들어, 어떤 숫자가 짝수인지 홀수인지 판별하거나 음수와 양수에 따라 다른 연산을 적용해야 할 때, 조건 구조를 사용하여 프로그램의 흐름을 동적으로 제어할 수 있습니다.

단일 분기 if문

단일 분기 if문은 주어진 조건식이 참(true)일 때만 특정 코드 블록을 실행합니다. 조건식이 거짓(false)이면 해당 블록을 건너뛰고 바로 다음 명령어로 진행합니다.

기본 문법

if (조건식)  
{  
    // 조건식이 참일 때 실행될 코드 블록
}

예제: 정수의 절대값 구하기

수학에서 양수의 절대값은 자기 자신이며, 음수의 절대값은 그 부호를 반전한 값입니다. 이를 단일 분기 if문을 활용하여 구현해 보겠습니다. 초기에는 절대값을 입력된 숫자 자체로 가정한 뒤, 숫자가 음수일 경우에만 부호를 변경하는 방식을 사용합니다.

using System;

namespace AbsoluteValueExample
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("정수를 입력하세요: ");
            int inputValue = int.Parse(Console.ReadLine());
            
            int absoluteResult = inputValue; // 기본적으로 자기 자신으로 가정
            
            if (inputValue < 0)
            {
                absoluteResult = -inputValue; // 음수일 경우 부호 반전
            }
            
            Console.WriteLine($"{inputValue}의 절대값은 {absoluteResult}입니다.");
        }
    }
}

이중 분기 if-else문

조건식의 결과에 따라 참일 때와 거짓일 때 서로 다른 로직을 수행해야 한다면 if-else문을 사용합니다. 조건식이 참이면 if 블록을 실행하고, 거짓이면 else 블록을 실행합니다.

기본 문법

if (조건식)  
{  
    // 조건식이 참일 때 실행될 코드 블록
}  
else  
{  
    // 조건식이 거짓일 때 실행될 코드 블록
}

예제: 두 정수 중 최댓값 찾기

두 개의 숫자를 입력받아 더 큰 값을 찾아내는 로직을 작성할 때 if-else문을 활용할 수 있습니다. 첫 번째 숫자가 두 번째 숫자보다 크거나 같으면 첫 번째 숫자를 최댓값으로 설정하고, 그렇지 않으면 두 번째 숫자를 최댓값으로 설정합니다.

using System;

namespace MaxValueExample
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("첫 번째 정수를 입력하세요: ");
            int firstNumber = int.Parse(Console.ReadLine());
            
            Console.Write("두 번째 정수를 입력하세요: ");
            int secondNumber = int.Parse(Console.ReadLine());
            
            int maximumValue;
            
            if (firstNumber >= secondNumber)
            {
                maximumValue = firstNumber;
            }
            else
            {
                maximumValue = secondNumber;
            }
            
            Console.WriteLine($"두 수 중 최댓값은 {maximumValue}입니다.");
        }
    }
}

태그: C# IfStatement IfElse FlowControl ConditionalLogic

6월 26일 01:19에 게시됨