이 포스팅은 C#의 조건문 튜토리얼이다. 프로그램은 조건에 따라 분기하여 여러가지 결과로 분기된다. 영어로 contitional statement 라 하고 branch 라고도 한다. if 와 if- else ,switch case 문이 있다.

 

조건문을 사용하기 위해서는 비교연산자를 알아야 한다.

 

비교연산자 설명
==  같다
!= 같지 않다
> 보다 크다
>= 와 같거나 보다 크다
< 보다 작다
<= 와 같거나 보다 작다

 

비교 연산자는 두개의 항을 비교하여 참이면 true 를 거짓이면 false를 리턴한다. (bool형)수학의 = 같다 기호와 컴퓨터 언어의  == 같다 기호는 = 의 숫자에 차이가 있다. 프로그래밍에서는 = 는 대입 또는 할당 연산자라고 했다. 

 

예를 들어 아래 예제 처럼 두개의 값을 비교 후 비교연산 값이 참이면 True를 거짓이면 False 를 리턴한다.

a = 5;

b = 5;

Console.Write(a == b)

결과값 : True
a = 7;

b = 5;

Console.Write( a <  b) // a는 b 보다 크므로 거짓이다 

결과값 : False
a = 9;

b = 4;

Console.Write( a != b) // a와 b 숫자는 다르다. 그러므로 참이다

결과값 : true

 

이제 이 비교연산자들을 사용해서 if 조건문을 만들어본다. if문은

 

if (조건식 , 비교연산)
{
	코드블록
}

조건이 참이면 코드블록을 실행한다.

 

        static void Main(string[] args)
        {

            int a = 5;
            int b = 7;
            
            if( a + b > 10)
            {
                Console.WriteLine("a와 b의 합은 10보다 크다");
                Console.WriteLine($" a : {a}  b: {b}  a + b : {a + b}");
            }

        }

a 와 b 의 합이 12이므로 10보다 크다. 조건식이 참이므로 이 if문은 한번 실행된다. a의 숫자를 1이나 2로 바꿔서 실행해보면 아무것도 출력되지 않는다. if 문이 조건식을 확인하여 거짓으로 실행하지 않기 때문이다.

 

* if-else 조건문

 

if 조건문의 확장판이다. else는 if 조건식이 false 인경우 실행시킨다. 조건식이 참이냐 거짓이냐에 따라 분기가 된다.

 

 static void Main(string[] args)
        {

            int x = 9; // x를 바꿔서 실행해본다

            if (x > 10)
            {
                Console.WriteLine("x는 10보다 크다");
            }
            else
            {
                Console.WriteLine("x는 10보다 크지 않다");
            }

        }

x가 10을 기점으로 두개로 분기한다. 그럼 x == 10 인 경우는 어떻게 되는가? x는 10보다 크지 않다가 출력된다. 크지 않다는 것은 같을 수도 있다는 말이기 때문이다. 숫자의 대소비교는 항상 (보다 크다, 보다 작다, 와 같다) 이 세가지 범위에 값이 들어간다.

 

실행결과

 

 

그림으로 보면 이런 식이다. 처음 가운데에서 출발하여 중앙의 조건식을 확인하고 양쪽으로 분기한다.

 

FundamentalsofComputerProgrammingwithCSharp 발췌

 

 

if-else-if-else... 연속사용

두개의 분기만 사용하면 좀 부족하니까 여러개를 사용할 수 있다.

 

         static void Main(string[] args)
        {
            int score1 = 80;

            char grade;

            if (score1 > 90)
                grade = 'A';
            else if (score1 > 80)
                grade = 'B';
            else if (score1 > 70)
                grade = 'C';
            else if (score1 > 60)
                grade = 'D';
            else
                grade = 'F';

            Console.WriteLine($"당신의 점수는 {score1} 이고 등급은 {grade} 입니다");

        }

점수를 다르게 해서 입력해보면 원리를 잘 알 수있다. if-else 체인을 위에서 부터 차례로 검사하다가 조건식에 해당하면 그 코드블록을 실행시키고 종료한다. 아무 조건에도 해당하지 않으면 마지막에 else 문이 실행된다.

 

 

스위치 케이스문

스위치 케이스 문은 조금 특이하게 생겼다. if문과는 다르게 case 는 하나의 값으로 비교한다.

        static void Main(string[] args)
        {
            int number = 11;
            switch (number)
            {
                case 1:
                case 4:
                case 6:
                case 8:
                case 10:
                    Console.WriteLine("The number is not prime!"); break;
                case 2:
                case 3:
                case 5:
                case 7:
                    Console.WriteLine("The number is prime!"); break;
                default:
                    Console.WriteLine("Unknown number!"); break;
            }
        }

case 1,4,6,8,10 의 경우 case 10의 문장을 실행하고 종료한다. break가 switch case를 종료하는 지점이다.

case 2,3,5,7 의 경우 case 7을 실행한다. 값이 저 범위에 없으면 default를 실행하고 종료한다.

 

1,4,6,8,10 의 경우 결과값

 switch case 문은 조금 예전 문법처럼 느껴져서 잘 사용하지 않는다. 무엇보다 case 값이 많아지면 소스코드가 복잡해진다는 단점이 있다.

 

 

Fundamentals of Computer Programming with CSharp 의 Chapter 6 Loops 의 소스코드와 그래픽을 사용하여 작성하였다. (Free License)

https://introprogramming.info/

 

Introduction to Programming with C# / Java Books

Книгата “Въведение в програмирането с Java” е безплатно ръководство по програмиране на Java с уроци, задачи за упражнения и насоки за решения.

introprogramming.info

 

공유하기

facebook twitter kakaoTalk kakaostory naver band