본문 바로가기

Language/C

<C언어 기초> 02. 조건문

  

· 조건문

* if

 - x와 y의 크기를 비교해서 x가 y보다 큰지 작은지를 출력하는 프로그램을 만든다고 가정하자.

 - x가 y보다 작을 경우 "x is less than y"를 출력해보자.

 

if (x < y)
{
    printf("x is less than y\n");
}

 

 - if 문으로 조건을 시작하고 괄호안에 조건을 적는다.

 - 위는 x가 y보다 작으면 출력문이 실행되는 구조이다.

 - 참고로 조건문의 끝에는 ;(세미콜론)을 굳이 붙이지 않는다. 세미콜론은 주로 함수의 끝에 넣는다.

 

* else

 - 위를 좀더 보완하여보자. x가 y보다 작지 않으면 "x is not less than y"를 출력하자.

 

if (x < y)
{
    printf("x is less than y\n");
}
else
{
    printf("x is not less than y\n");
}

 

 - 위는 if 조건이 부합하지 않으면 모두 else에서 처리를 하게되는 구조이다.

 

* else if

 - 조건을 좀 더 세분화 해서 x가 y보다 큰지 작은지 같은지를 출력해보자.

 

if (x < y)
{
    printf("x is less than y\n");
}
else if(x > y)
{
    printf("x is not greater than y\n");
}
else if(x == y)
{
    printf("x is equal to y\n");
}

 

 - else if는 조건을 여러 개 생성하게 할 수 있는 구문이다.

 - 이 때 조건에 특이한 것이 있는데, 바로 == 이다. 컴퓨터에서 =은 주로 할당연산자를 의미한다. 같다라는 조건을 표시할 때에는 == 을 사용한다. 참고로 ≠(다르다)는 != 이다.

 

* 개선

 - 위의 마지막 코드는 개선할 필요가 있다.

 - 가장 마지막 조건은 굳이 존재하지 않더라도 x가 y보다 크지도 작지도 않으면 같다는 것은 금방 알 수 있다. 따라서 다음과 같이 코드를 작성할 수 있다.

 

if (x < y)
{
    printf("x is less than y\n");
}
else if(x > y)
{
    printf("x is not greater than y\n");
}
else
{
    printf("x is equal to y\n");
}

 

 - 위와 같이 간결하게 만듦으로써 효율적인 코딩이 가능해지고 더 적은 메모리나 CPU를 사용할 수 있다.

 

 


 

 

 

참고

 

 

  이 글은 하버드 대학교 David Malan 교수CS50 강의를 수강 후 정리하며 쓴 글입니다. 코드는 C언어로 작성되었으며, 개발환경은 CS50 Sandbox에 최적화되어 있습니다. 일부 라이브러리는 다른 환경에서 별도의 설정이 필요할 수 있습니다.

 

 

 

CS50 공식사이트

 

CS50

Introduction to the intellectual enterprises of computer science and the art of programming. This course teaches students how to think algorithmically and solve problems efficiently. Topics include abstraction, algorithms, data structures, encapsulation, r

cs50.harvard.edu

 

부스트코스

 

다 함께 배우고 성장하는 부스트코스

부스트코스(boostcourse)는 모두 함께 배우고 성장하는 비영리 SW 온라인 플랫폼입니다.

www.boostcourse.org

 

CS50 Sandbox

 

CS50 Sandbox

Temporary programming environments for students and teachers.

sandbox.cs50.io

 

 

 

'Language > C' 카테고리의 다른 글

<C언어 기초> 06. 배열  (0) 2021.01.27
<C언어 기초> 05. 사용자 정의 함수  (0) 2021.01.24
<C언어 기초> 04. 자료형과 연산자  (2) 2021.01.23
<C언어 기초> 03. 루프  (0) 2021.01.22
<C언어 기초> 01 출력과 문자열  (0) 2021.01.20