C# 코드의 흐름 제어 (if와 switch 그리고 삼항연산자...)

2025. 1. 17. 16:31컴퓨터 언어/c#

자 그동안 너무 바빳다 다음달 초에 일본여행을 가기로 했는데 모은 돈이 없어서 거의 알바만 하고 지냈다. 진지하게 공부하는 시간보다 다른 짓 하는 시간이 더 많아서 조금 쪽팔리고 자괴감이 들지만 괜찮다 책상에만 언제가 다시 앉아 책 한 페이지라도 넘기면 된다. 아무튼 오늘 공부 다시 시작헀다.

if와 else

코드의 흐름을 제어해주는 구문이다. if는 '만약'이라는 뜻이고, else는 '그렇지 않으면'이라는 뜻으로, 의미 그대로 이해하면 된다.

if(조건식)의 형태로 작성하며, 조건식이 참일 경우 중괄호로 지정된 범위의 코드가 실행된다. else는 조건식이 거짓일 때 실행되는 코드를 담고 있어서 별도의 조건식이 필요하지 않다. 다음은 예시이다.

using System;

class Program
{
    static void Main(string[] args)
    {
        Console.Write("숫자  1에서 100사이 입력: ");
        string input = Console.ReadLine();
        int num = int.Parse(input);

        if (num >= 50)
        {
            Console.WriteLine("50이상의 수");
        }
        else
        {
            Console.WriteLine("50이하의 수");
        }
    }
}

이는 입력받은 수가 50 이상인지 판단하는 간단한 코드이다. 1 이하나 100 이상의 수에 대한 예외처리는 생략했다. 코드를 보면 if문에는 조건식이 있지만 else에는 없다는 것을 알 수 있다. 조건식이 참이면 else 구문은 실행되지 않고 프로그램이 종료된다. 추가 조건이 필요할 때는 else if를 사용한다. 앞서 언급한 1보다 작은 수와 100 이상의 수에 대한 예외처리를 else if를 이용해 다음과 같이 구현할 수 있다.

using System;

class Program
{
    static void Main(string[] args)
    {
        Console.Write("숫자  1에서 100사이 입력: ");
        string input = Console.ReadLine();
        int num = int.Parse(input);

        if (num >= 100)
        {
            Console.WriteLine("100이상의 수");
        }
        else if (num < 100 && num >= 50)
        {
            Console.WriteLine("50이상의 수");
        }
        else if (num < 50 && num >= 1)
        {
            Console.WriteLine("50이하의 수");
        }
        else {
            Console.WriteLine("0보다 작은 음수");
             }
    }
}

이처럼 두 개의 조건이 추가되었다. else if를 활용하면 더 복잡한 조건도 처리할 수 있다. 여기서 parse의 부연 설명을 할 수있다. parse를 이용해 int로 변환하고 싶을 때 정수가 아닌 경우를 예외처리 시킬 수 있다. 그 코드는 나중에 보여주겠다.

 

Switch 

스위치 케이스 문이다. 난 if문이 더 편하고 좋지만 그렇지 않은 사람들이 있다면 이걸 사용해도 좋다. 다만 switch문에서는 조건을 직접 비교하는 것은 불가능하다. 상수 값만 사용가능 하기 때문에 case문으로 가능한 것은 if문으로 할 수 있지만 그 반대는 불가능 한 경우도 있다. 

using System;

class Program
{
    static void Main(string[] args)
    {
        int num = 30;

        switch (num)
        {
            case 0:
                Console.WriteLine("0");
                break;
            case 10:
                Console.WriteLine("10");
                break;
            case 20:
                Console.WriteLine("20");
                break;
            case 30:
                Console.WriteLine("30");
                break;
            default:
                Console.WriteLine("해당하는 케이스가 없습니다.");
                break;
        }
    }
}

예제 코드이다. 위 코드는 30이 출력 될 것이다. break는 위의 조건이 맞다면 switch문을 종료시킨다. 그래서 각 조건마다 break를 써 줘야 한다. default는 조건에 만족하는 case가 없다면 실행되는 코드이다. if의 else를 생각하면 편하다. 마지막으로 삼항 연산자이다. 이것도 간단한 조건을 가진 if문을 대신할 수 있는 방법이다. 방법은 간단하다.

bool result = a<b ? true : false  

(a<b)는 연산식 ?는 연산식과 반환값을 구분해준다. 물으표 연산자라고도 한다. (true)는 연산이 참일때 :로 구분되는 (false) 는 연산이 거짓일 때 반환되는 값이다. bool 형식이 아니라 다른 데이터형도 가능하다. 

 

'컴퓨터 언어 > c#' 카테고리의 다른 글

비교 연산과 논리 연산  (0) 2025.01.01
산술 연산  (1) 2024.12.27
c# 데이터 다루기  (1) 2024.12.24
C# 자료형  (1) 2024.12.20