티스토리 뷰

C언어

[5] C언어 조건문

Modification 2018. 4. 15. 19:30

안녕하세요? Modification입니다. 이번 4월에 이 글을 쓰고 다음 글은 5월에 올라오겠습니다. 이번에는 조건문에 대하여 알아보도록 할게요. 조건문이란, 어떠한 사실이 충족될때 특정 코드가 실행되도록 하는 것으로, 코딩을 하면서 빠질수가 없는 것입니다. 예를 들면 배가 고프면(조건) 빵을 먹는다(특정 코드). 


1. if문


if문은 조건문의 대표적인 형태라고 할 수 있습니다. 영어로는 if는 만약 이라는 뜻이죠. 기본적인 틀은 이렇습니다.

if(조건)

{

코드

}

만약 조건이 만족되면 코드는 실행되고, 만족이 안되면 이 코드는 넘어갑니다. 그러면 예제를 만들어보겠습니다.


이렇게 jungsoo의 값을 0으로 정해놓고 jungsoo가 0이라면 정수는 바보라고 출력되도록 했고, 1이라면 정수는 천재라고 출력되도록 했습니다. 그런데 여기에서 =가 아닌 ==라는 것이 생소한 분들이 계실 수도 있겠는데요, 둘의 차이점은 이렇습니다.

=: =전의 것에 =다음의 것을 대입한다.

==: ==전의 것과 ==다음의 것이 같다는 조건

>: >전의 것이 >다음의 것보다 크다

<: <전의 것이 <다음의 것보다 작다

>=:이상

<=:이하

그러니까 저희가 jungsoo=0이라고 하면 jungsoo에 0이라는 값을 대입하는 것이고, jungsoo==0은 jungsoo와 0이 같다는, 저희가 일반적으로 =의 뜻으로 사용하는 '같다'라는 조건이죠.

그러면 이렇게 코드를 짜고 실행하면 어떨까요? 일단 첫번째 if문에는 jungsoo가 0인지를 판별하는 것인데 참이니까 실행될것이고, 두번째 조건은 거짓이므로 실행이 안 되겠네요. 실행 화면은 이렇습니다.

그러면 이번에는 if문의 심화를 해보겠습니다(사실 심화도 아닙니다 부가 기능입니다). 만약 우리가 sosoo라는 변수도 추가해서 sosoo의 값이 5.5이고 jungsoo의 값이 4일때 코드를 실행하고 싶을때에는 어떻게 해야할까요? 그럴 때에는 일단 우리가 배운 방식으로 해보죠. if문 안에 if문을 한 개 더 넣는 것입니다. 아래처럼요.

(위에 오타가 있습니다. sosoo==5.5입니다)


이런 방식은 그냥 if문 그 자체만 알고 있을 때에 쓰는 방식이죠. 그냥 단순하게 한 것이니까요. 하지만 비효율적입니다. 물론 효율적일 때에도 있습니다. 하지만 이런 것에서는 더 효율적인 방법이 있습니다. 바로 &&, ||을 쓰는 것입니다. 일단 위의 상황에서 필요한 것은 &&입니다. &기호는 and, 즉 그리고 라는 뜻이죠. 틀은 이렇습니다.

if(조건1&&조건2)

{

코드

}


아까 상황을 이렇게 짜면 이렇습니다.

이렇게 하면 아래처럼 나옵니다.

잘 했습니다!! 그러면 ||에 대하여 알아봅시다!! 이것은 또는 이라는 뜻입니다. 혹시 또는의 뜻을 진정으로 아시나요? 프로그래밍은 곧 수학과 같다고 할 수 있습니다. 또는은 수학의 뜻의 또는입니다(?). 또는은 두개의 조건 중 하나만 만족해도 됩니다. 조건1과 조건2가 있을때 조건1이 참이고 조건2가 거짓이어도 되고, 조건1이 거짓이고 조건2가 참이어도 되고, 조건1과 조건2가 둘다 참이어도 됩니다. 하지만 조건1과 조건2가 둘 다 거짓일때에는 안 됩니다. 아래의 사진을 봐봅시다.

그러니까 둘다 거짓일 때 외에는 다 참으로 인식된다는 것입니다.  그러면 이제 다음으로 넘어갑시다.


2. if~else문과 if~else if~ else문

만약 저희가 jungsoo의 값이 5일 때에는 정수는 바보라고 출력하고, 값이 5가 아닐 때에는 정수는 천재라고 출력하도록 하려면 어떻게 해야 할까요? 여기에는 두가지 방법이 있습니다. 하나는 !를 사용하는 것이고, 또 하나는 else문을 사용하는 것입니다. 일단 첫번째 방법을 해봅시다.

저기서는 ==라고 안 썼죠? 그 이유는 저도 모릅니다. !==라고 쓰면 오류 납니다. 여기서 !는 조건이 아닌 것을 조건으로 삼는 것입니다. 따라서 위에서는 jungsoo=5가 아닐 때 실행하는 것이죠.


두번째 else문은 이렇습니다.

else문은 무조건 if문 아래에 이렇게 배치되어야 합니다. 당연한 것이, jungsoo=5일때에는 정수는 바보 를, 그 외의 상황에는 정수는 천재 라고 출력되는 문인데 그 조건이 없으면 안 되겠죠? 이런 면에서는 한 가지 조건일 때에는 else문보다 !이 더 좋다고 생각할 수도 있지만, else에게는 더 많은 기능이 있습니다. 바로 else if입니다. else if문의 형태는 이렇습니다.

if(조건1)

{

코드1

}

else if(조건2)

{

코드2

}

else

{

코드3

}

이건 무엇이냐면요, 조건 1이 참이라면 코드 1을 실행하고, 조건1이 거짓이라면 조건2가 참이라면 코드2를 실행하고, 그 외의 경우에는 코드3을 실행합니다. 즉, 여러가지 부가 상황을 만들 수 있다는 것이죠!! 예로는 이렇습니다.

가장 진가를 볼 수 있을 때에는 바로 이 상황입니다. 저희가 jungsoo==5이지 않지만 jungsoo>0일때의 조건을 할때에 이렇게 하면 됩니다.


3. switch문

switch문은 약간 설명하기가 어려워서 틀부터 알려줍니다.

switch(무언가)

{

case 1:

printf("무언가의 값이 1일때");

break;

case 2:

printf("무언가의 값이 2일때");

break;

case 9:

printf("무언가의 값이 9일때");

}

이렇습니다. 예제는 이렇습니다. 상황은: jungsoo의 값이 1일때는 great!을, 2일때는 not bad을, 3일때에는..... 9일때에는 troll이라고 출력하도록 하는 것입니다.

break;문은 그냥 일단 무시해주세요. 궁금증을 가지실 필요, 없습니다. 


그러면 이렇게 마치고요, 궁금하신 점은 댓글에 남겨주세요.

'C언어' 카테고리의 다른 글

[4] C언어 반복문  (0) 2018.03.25
[3] C언어 콘솔 입력 하기  (0) 2018.02.27
[2] C언어 변수를 알기  (0) 2018.02.22
[1] C언어 콘솔 출력 하기  (0) 2018.02.20
[0] C언어 에디터 Dev C++ 다운로드  (0) 2018.02.14
Comments
최근에 올라온 글
최근에 달린 댓글
TAG
more
Total
Today
Yesterday