C#

[C#] 분기문 (if, switch)

homoon 2023. 5. 27. 14:25

1. if, else, else if

if 문의 사용 형식 if (조건식)
    참인 경우에 실행 할 코드;
참인 경우 실행할 코드가 여러 줄인 경우 if (조건식)
{
    // 참인 경우에
    // 실행할
    // 코드
}
else 예시 if (조건식)
    참인 경우에 실행 할 코드;
else
    거짓인 경우에 실행 할 코드;
else if 예시 if (조건식1)
    조건식1이 참인 경우에 실행 할 코드;
else if (조건식2)
    조건식1이 거짓일때 조건식2가 참 인 경우에 실행 할 코드;
else
    거짓인 경우에 실행 할 코드;
// if문 예시
/*
 * 숫자를 입력하세요. : 33
 * 양수
 * 홀수
 * 
 * 숫자를 입력하세요. : -12
 * 음수
 * 짝수
 */
namespace IfElse
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("숫자를 입력하세요. : ");

            string input = Console.ReadLine();
            int number = Int32.Parse(input);

            if (number < 0)
                Console.WriteLine("음수");
            else if (number > 0)
                Console.WriteLine("양수");
            else
                Console.WriteLine("0");

            if (number % 2 == 0)
                Console.WriteLine("짝수");
            else
                Console.WriteLine("홀수");
        }
    }
}
/*
 * if 중첩문 예시
 * 
 * 숫자를 입력하세요. : 11
 * 0보다 큰 홀수.
 * 
 * 숫자를 입력하세요. : 4
 * 0보다 큰 짝수.
 * 
 * 숫자를 입력하세요. : -10
 * 0보다 작거나 같은 수.
 */
namespace IfIf
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.Write("숫자를 입력하세요. : ");

            string input = Console.ReadLine();
            int number = Convert.ToInt32(input);

            if (number > 0)
            {
                if (number % 2 == 0)
                    Console.WriteLine("0보다 큰 짝수.");
                else
                    Console.WriteLine("0보다 큰 홀수.");
            }
            else
            {
                Console.WriteLine("0보다 작거나 같은 수.");
            }
        }
    }
}

2. switch

switch (조건식)
{
    case 상수1 : // 조건식 == 상수1?
        // 실행할 코드
        break;
    case 상수2 : // 조건식 == 상수2?
        // 실행할 코드
        break;
    case 상수N : // 조건식 == 상수N?
        // 실행할 코드
        break;:
    default : // 조건식이 어떤 경우와도 맞지 않은 경우, default 절은 생략 가능함
        //
        break;
}
/*
 * switch문 예제
 * 
 * 요일을 입력하세요. (일,월,화,수,목,금,토) : 화
 * Tuesday
 * 
 * 요일을 입력하세요. (일,월,화,수,목,금,토) : 사
 * 사는(은) 요일이 아닙니다.
 */
namespace Switch
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.Write("요일을 입력하세요. (일,월,화,수,목,금,토) : ");
            string day = Console.ReadLine();

            switch (day)
            {
                case "일":
                    Console.WriteLine("Sunday");
                    break;
                case "월":
                    Console.WriteLine("Monday");
                    break;
                case "화":
                    Console.WriteLine("Tuesday");
                    break;
                case "수":
                    Console.WriteLine("Wednesday");
                    break;
                case "목":
                    Console.WriteLine("Thursday");
                    break;
                case "금":
                    Console.WriteLine("Friday");
                    break;
                case "토":
                    Console.WriteLine("Saturday");
                    break;
                default:
                    Console.WriteLine($"{day}는(은) 요일이 아닙니다.");
                    break;
            }
        }
    }
}
/*
 * switch 예제 2
 * 
 * 123
 * 123는 int 형식입니다.
 * 
 * 123.45
 * 123.45는 float 형식입니다.
 * 
 * 안녕하세요
 * 안녕하세요는 모르는 형식입니다.
 */
namespace Switch2
{
    internal class Program
    {
        static void Main(string[] args)
        {
            object obj = null;

            string s = Console.ReadLine();
            if (int.TryParse(s, out int out_i))
                obj = out_i;
            else if (float.TryParse(s, out float out_f))
                obj = out_f;
            else
                obj = s;

            switch (obj)
            {
                case int i:
                    Console.WriteLine($"{i}는 int 형식입니다.");
                    break;
                case float f:
                    Console.WriteLine($"{f}는 float 형식입니다.");
                    break;
                default:
                    Console.WriteLine($"{obj}는 모르는 형식입니다.");
                    break;
            }
        }
    }
}