본문 바로가기
C언어

세이버의 C언어 강의 11강_조건문(if 함수)

by 비원(Be one) 2019. 2. 17.
반응형

여러분 안녕하세요. 세이버입니다.

 

이번 강에서 다룰 주제는 조건문입니다.

조건문을 배우시면 어느 정도 퀄리티 있는 프로그램 코드를 작성하실 수 있으실 겁니다.

그럼 강의 시작합니다.


1. 조건문이란 무엇인가

조건문(conditional statement)이란 조건의 참 거짓에 따라 수행을 달리하는 역할을 하는 함수입니다.

 

인생은 선택의 연속이라고 합니다.

저녁으로 치킨을 먹을까 피자를 먹을까 혹은 콜라를 마실까 사이다를 마실까 같은 사소한 선택으로 인생은 달라질 수 있습니다.

 

이것은 프로그래밍에서도 마찬가지입니다.

 

짜장면(5000)과 짬뽕(6000), 탕수육(7000) 중 하나를 골라 가격을 출력하는 프로그램을 만든다고 가정합시다.

여기서 선택의 가짓수는 3개입니다.

이때 어떤 메뉴를 선택하냐에 따라 출력되는 가격이 달라지게 될 겁니다.

조건문은 위와 같이 선택을 해야 할 때 사용되며, 어떤 선택을 하냐에 따라 결과값이 달라질 수 있습니다.

 

조건문은 크게 if 함수와 switch 함수가 있습니다.

11강에서는 if 함수만 다루어보고, switch 함수는 다음 강에서 다루겠습니다.

 

2. if 함수

if 함수는 가장 기초적이면서 대표적인 조건문입니다.

if 함수는 if(만약)의 뜻에 맞게 만약 조건이 참이면 실행되도록 하는 역할입니다.


if 함수의 구조

 

if(조건)

{

    실행할 코드

}


if 함수의 구조는 위와 같습니다.

( )안의 조건이 참이면 { }의 코드들을 실행하고, ( )안의 조건이 거짓이면 { }의 코드들을 실행하지 않고 넘어갑니다.

 

실습으로 알아보겠습니다.

 

이 코드를 사용하는 사용자는 숫자 하나를 입력하게 됩니다. (9)

입력한 숫자는 정수형 변수 num에 저장되고, 11행의 if 함수의 조건인 'num50 이상인가?'를 검증하게 됩니다.

만약 num에 저장된 값이 50이상(조건이 참)인 경우에는 13행의 printf 함수를 실행합니다.

만약 num에 저장된 값이 50미만(조건이 거짓)인 경우에는 13행을 실행하기 않고 {} 다음인 15행으로 넘어가게 됩니다.

 

그런데 이렇게 하면 한 가지 의문이 들 겁니다..

그러면 50미만의 값을 입력했을 때 '50미만을 입력하셨습니다.'를 출력하려면 어쩌지???

 

이렇게 하면 될까요??

이렇게 하면 50미만을 입력하면 원하던 대로 '50미만을 입력하셨습니다.'가 출력됩니다.

하지만 50이상을 입력하면 다음처럼 이상하게 출력이 됩니다.

 

러면 어떻게 해야 할까요???

해답 중 하나는 if 함수를 하나 더 씀으로써 조건을 하나 더 추가하는 것입니다.

 

이렇게 하시면 num값이 50미만일 경우 11행의 if 함수를 건너뛰고

15행의 if 함수로 넘어가 조건이 참이므로 17행의 문장을 출력하게 됩니다.

 

물론 이렇게 해도 되지만, 이거보다 간단하고 대중적인 방법이 있습니다.

 

3. else 함수

이번 장에서는 if 함수의 짝꿍 else 함수를 배워보겠습니다.

else 함수는 if 함수와 함께 쓰이며 2장에서의 if 함수의 문제점(조건이 아닐 경우의 처리법)도 해결할 수 있습니다.

else 함수는 if 함수의 조건이 거짓인 경우 수행되는 함수입니다.

 

else 함수의 구조는 다음과 같습니다.


else 함수의 구조

 

else

{

    실행할 코드

}


else 함수는 if 함수와는 다르게 조건이 없습니다.

그 이유는 if 함수의 조건이 거짓이라면 무조건 else 함수의 영역으로 넘어가기 때문에 조건을 쓸 필요가 없는 것입니다.

또한, if 함수의 조건 외에 다른 조건이 필요가 없다면 사용하지 않아도 됩니다.

 

실습으로 넘어가보겠습니다.

 

이 코드는 2장 마지막에 나온 코드와 같은 역할을 합니다.

사용자가 50 이상의 수를 입력하면 11행의 if 함수의 영역(12~14)을 실행하고

50 미만의 수를 입력하면 16행의 else 함수의 영역(17~19)을 실행합니다.

 

물론 2장의 코드와 같이 쓰셔도 무방합니다만, 지금 현재 가장 대중적이게 사용되는 방법이 else 함수를 사용하는 방법이기에 이 방법을 사용하시는 것을 권장합니다.

 

그럼 이제 if 함수는 다 배운 것일까요???? 안타깝게도 아직 문제점이 하나 남아있습니다.

조건이 2개 이상일 경우는 어떻게 해야 할까요??

 

예를 들어 50이상의 수를 입력했을 때는 '50 이상을 입력하셨습니다.'

30 이상 50 미만의 수를 입력했을 때는 '30 이상 50 미만을 입력하셨습니다.'

30 미만의 수를 입력했을 때는 '30 미만을 입력하셨습니다.'를 출력한다고 하면 어떻게 할까요?

 

if 함수를 여러 개 사용하면 될까요??

 

물론 이렇게 하셔도 프로그램은 잘 동작합니다만, 이보다 더 대중적이고 간단한 방법을 소개해드리겠습니다.

 

 

4. else if 함수

else if 함수는 if 함수, else 함수와 함께 쓰이는 함수로 조건이 여러 개일 경우에 사용되는 함수입니다.

if, else if, else 함수끼리 한 세트입니다.

 

else if 함수의 구조는 다음과 같습니다.


else if 함수의 구조

 

else if(조건)

{

    실행할 코드

}


if 함수와 구조가 같지만 조건에서 차이가 있습니다.

else if 함수의 조건은 if 함수의 조건과 달라야 합니다.

또한, 헷갈리지 마셔야 하는 것 중 하나로 if 함수의 조건이 거짓인 경우 else if 함수로 넘어가고, else if 함수의 조건도 거짓인 경우 else 함수로 넘어가게 됩니다.

 

, 실행 순서가 if -> else if -> else 인 것을 기억하셔야 합니다.

실습으로 알아보겠습니다.

3장에서의

[50이상의 수를 입력했을 때는 '50 이상을 입력하셨습니다.'

30 이상 50 미만의 수를 입력했을 때는 '30 이상 50 미만을 입력하셨습니다.'

30 미만의 수를 입력했을 때는 '30 미만을 입력하셨습니다.'를 출력한다] 를 else if 함수를 가지고 구현해보겠습니다.

 

이렇게 구현할 수 있습니다. 훨씬 깔끔해 보이지 않나요???

11행의 if 함수의 조건이 거짓이라면 16행의 else if 함수로 넘어가 조건을 확인하고

else if 함수도 거짓이라면 else 함수로 넘어가는 구조입니다.

 

여기서 한 가지 짚고 넘어갈 것은 else if함수는 1개가 아니라 여러 개를 사용하셔도 된다는 것입니다.

 

이렇게 else if 함수를 두 개 사용해도 무방합니다.

하지만 if 함수와 else 함수는 무조건 1개만 사용해야 합니다. (ifelse가 세트인 경우)

 

5. tip

이 장은 팁으로 넘어가셔도 크게 문제는 없습니다.

 

if 함수, else if 함수, else 함수 모두 구역이 한 줄일 경우 { }를 생략해도 됩니다.

 

위쪽은 { }를 쓴 것, 아래쪽은 쓰지 않은 것입니다.

둘 다 똑같이 정상적으로 동작합니다.

 

, 구역이 2줄 이상일 경우에는 반드시 { }를 써야 하는 것 잊지 마세요.

이걸 알려드리는 이유는 이 팁을 잘 사용하면 코드의 길이를 엄청나게 줄일 수 있기 때문입니다.


이번 강은 여기서 마치겠습니다. 다음 강에서는 다른 조건문인 switch 함수를 배워보겠습니다.

오늘도 수고하셨습니다.

 


정리

- 조건문 : 조건의 참 거짓에 따라 수행을 달리하는 역할을 하는 함수

- if 함수 : 가장 기본적인 조건문, 조건이 참이면 구역의 코드 실행

- else 함수 : if 함수의 조건이 거짓인 경우 실행되는 함수, 사용하지 않아도 무방

- else if 함수 : if 함수의 조건이 거짓인 경우 실행되는 함수, 여러 개를 사용해도 무방

- 실행 순서 : if -> else if -> else

- tip : 구역의 코드가 한 줄일 경우 { }를 생략해도 무방


강의가 유익하셨거나 마음에 드셨으면 구독과 좋아요, 댓글 부탁드립니다.

궁금하신 점이나 질문은 댓글이나 메일을 남겨주세요.

 

poci5003@gmail.com

 

반응형