Lee Saerom

C# 제어문 (if) 본문

C#

C# 제어문 (if)

Lee Saerom 2022. 11. 17. 21:20

순차면 :순서대로 실행하기 

프로크림은 기본적으로 다음 순서대로 실행됩니다. Main() 메서드 시작 지점부터 끝 지점까지 코드나 나열되면 순서대로 실행 후 종료합니다.

 

변수선언   순서대로 실행

      ↓

   계산

      ↓

   출력

 

다음 코드처럼 국어 점수와 영어 점수의 총점과 평균을 구하는 예제를 살펴보겠습니다. 모든 로직은 순서대로 실행해서 그 결과가 축력 됩니다. 지금까지 우리가 해 오던 방식입니다. 이러한 순서를 변경할 수 있는 구조가 있는데, 이 강의부터 살펴볼 제어문입니다. 다음 내용은 입력한 후 실행해 보세요.

using System;

namespace MyApp
{
    internal class HelloWorld
    {
        static void Main(string[] args)
        {
            int kor = 100;
            int eng = 90;

            int tot = 0;
            double avg = 0.0;

            tot = kor + eng; //총점 구하기
            avg = tot / 2.0; //평균 구하기

            Console.WriteLine("총점 : {0}", tot);
            Console.WriteLine("평균 : {0:F1}", avg);
    }
}

\ 실행 결과 /

총점 : 190
평균 : 95.0

순서대로 변수를 선언하고, 총점과 평균을 구하고, 그 값을 출력하는 형태로 실행하고 있습니다.이처럼 프로그램은 기본적으로 Main() 메서드에서 순서대로 실행하게 되어 있습니다.

 

조건문: if 문과 가지치기

if(조건식)
{
	조건문의 조건을 만족할 때 실행할 실행문들...
}

if(조건식)
	실행문;

if 문을 사용하여 조건 하나 처리하기

자.그럼 처음으로 if문을 사용해 보겠습니다 클래스 이름인 If는 반드시 대문자로 시작해야 합니다 그렇지 않으면 if 문의 if 키워드와 혼동되어 에러가 발생합니다.

using System;

namespace MyApp
{
    internal class HelloWorld
    {
        static void Main(string[] args)
        {
            int score = 60;

            if (score >= 60)    //score가 60 이상이면 '합격' 출력
            {
                Console.WriteLine("합격");
            }
        }
    }
}

\ 실행 결과 /

합격

if 문 괄호에는 조건식이 들어옵니다. (score >= 60) 식 결과가 참이면 '합격'을 출력하는 실행문을 실행하고, 조건식 결과가 거짓이면 아무것도 실행하지 않습니다. 이처럼 if 문은 조건식이 참이면 실행하고 그렇지 안흥면 아무것도 시해하는 않는 구조입니다.

 

if 문을 비교 연산자와 함께 사용하기

조건문인 if 문은 말 그대로 조건을 판단하기에 비교 연산자와 함께 자주 사용합니다. 다음 내용을 입력한 후 실행해 보세요.

using System;

namespace MyApp
{
    internal class HelloWorld
    {
        static void Main(string[] args)
        {
            int x = 10;

            if (x == 10)
            {
                Console.WriteLine($"x는{x}입니다.");
            };

            if (x != 20)
            {
                Console.WriteLine($"x는 20이 아닙니다.");
            }
        }
    }
}

\ 실행 결과 /

x는10입니다.
x는 20이 아닙니다.

비교 연산자 결과가 참이면 if 문을 수행하고, 거짓이면 if 문을 수행하지 않고 다음으로 진행합니다.

 

if 문을 사용하여 문자열 비교하기

준자열을 비교할 때 대 · 소문자를 구분합니다. 이 때문에 if 문과 같은 곳에서 문자열을 비교할 때는 주의해야 합니다. 이번에는 if 문을 사용하여 문자열을 비교해 보겠습니다.

string s1 = "Hello.";
string s2 = "Hello.";
s1 == s2
true
if (s1 == s2) //s1과 s2가 같으면 true
{
	Console.WriteLine("Same.");
}
Same.

두 변수 값이 같으면 Same.을 출력하고, 같이 않으면 아무것도 출력하지 않습니다.

 

!(NOT) 연산자를 if 문의 조건식에서 사용하기

if 문의 조건식 결과가 거짓이 아니면, 즉 참이면 실행문을 실행하는 형태를 살펴보겠습니다. 다음 내용을 입력한 후 실행해보세요.

using System;

namespace MyApp
{
    internal class HelloWorld
    {
        static void Main(string[] args)
        {
            bool bln = false;
            if (!bln)
            {
                Console.WriteLine("bln : false -> ! -> true");
            }
        }
    }
}

\ 실행 결과 /

bln : false -> ! -> true

'~가 아니라면 ~를 실행하라'는 의미로 if 문과 !(NOT) 연산자는 짝을 이루어서 많이 사용합니다.

 

중첩 if 문

if 문 안에는 또 다른 if 문을 넣을 수 있습니다. 이러한 행태를 중첩 if 문이라고 합니다 조건을 하나 만족하고 또 다른 조건을 만족할 때 어떤 일을 진행해야 한다면 중첩 if 문을 사용할 수 있습니다.

 

다음 내용을 입력한 후 실행해 보세요.

using System;

namespace MyApp
{
    internal class HelloWorld
    {
        static void Main(string[] args)
        {
            string name = "C#";
            int version = 8;

            if (name == "C#") //첫 번째 조건
            {
                if (version == 8) //두 번째 조건
                {
                    Console.WriteLine($"{name} {version}");
                }
            }
        }
    }
}

\ 실행 결과 /

C# 8

if 문 조건식에 맞으면 최종적으로 "C# 8"문자열이 출력되는 예제입니다.조건 여러 개를 만족하고자 할 때는 이처럼 if 문 여러 개로 묶어서 비교할 수 있는데, 이를 중첩 if 문이라고 합니다.

 

if 문으로 한 번에 조건 여러 개 처리하기

노리 연산자를 if 문과 함께 사용하면 if 문 하나로 조건 여러 개를 처리할 수 있습니다. 다음 코드를 실행해 보세요.

int numver = 1234;
if (number == 1234 && number >= 1000) //조건 2개를 모두 만족하면
{
	Console.WriteLine("맞습니다.");
}
맞습니다.
if (number == 1234 || number <= 1000) //조건 2개 중 하나라도 만족하면
{
	Console.WriteLine("하나라도 참이면 참");
}
하나라도 참이면 참

이 예제에서 살펴본 것처럼 if 문 조건식은 &&와 || 연산자를 사용하여 하나 이상의 조건을 함께 처리할 수 있습니다.

'C#' 카테고리의 다른 글

C#) while을 알아보자!  (4) 2022.12.29
C#)9040 : 반복제어문1 - 연습문제2(정답,풀이,힌트)  (0) 2022.12.29
C# 논리 연산자  (0) 2022.11.17
C# 관계형 연산자  (0) 2022.11.17
C# 전위 증감 연산자와 후위 증감 연산자  (0) 2022.11.17