컴퓨터를 공부하고자 마음먹은지 N일차

[16일차](홍정모의따배c)else와 if의 짝짓기 본문

🖥C

[16일차](홍정모의따배c)else와 if의 짝짓기

졸린새 2020. 9. 23. 21:58
728x90

[16일차](홍정모의따배c)if와 else의 짝짓기

*본 강의수기는 교수님의 모든 ppt나 코드 화면을 붙인게 아닙니다. 따로 출처 표시나 과제표시

안한 모든 코드와 사진자료의 출처는 본 강의의 교수님 입니다.

정리는 다시한번 제가 보기위함과 어떤강의인지 알려드리는 것이고

제가 적은건 이해를 돕기 위한 부연설명과 제가 이해한 몇개의 중심적인 내용이 다소

생략이 되었습니다. 이 수기를 통해 공부하려 하지말고 흥미로운 내용이라면

'인프런- 홍정모의 따라하며 배우는c' 과정을 수강하시길 바랍니다.

  • 교수님코드

#include <stdio.h>

int main()
{
    int number;
    scanf("%d", &number);
    
    if (number > 5)
        if (number < 10)
        printf("Larger than 5 smaller than 10\n");
    
    
    
    return 0;
}

위코드대로 적고 5보다 크고 10보다 작은 수를 넣으면

Larger than 5 smaller than 10라고 출력한다.

  • 교수님코드
#include <stdio.h>

int main()
{
    int number;
    scanf("%d", &number);
    
    if (number > 5)
        if (number < 10)
        printf("Larger than 5 smaller than 10\n");
    else
        printf("Less than or equal to 5");
    
    
    return 0;
}

밑에 else를 추가하고 5보다 작은수를 넣으면, Less than or equal to 5를 출력해야한다

즉 나는 칸을 맨 위의 if와 칸을 맞췄기에 맨 위의 if와 짝을 짓기를 바라는것이다.

하지만

그렇다

명확하게 {}를 넣어 구역을 정해주지 않으면 else는 자동으로 가까운 if와 붙어먹는다.

  • 교수님코드
#include <stdio.h>

int main()
{
    int number;
    scanf("%d", &number);
    
    if (number > 5)
    {
        if (number < 10)
        printf("Larger than 5 smaller than 10\n");
    }
    else
        printf("Less than or equal to 5");
    
    
    return 0;
}

if와 else를 혼용해서 여러번 쓰고싶을 경우엔

띄어쓰기말고 확실히 { } 로 구분해줘야 한다.

나는 개인적으로 칸으로 구분지으면 직관적으로 구분하기 힘들어서

구획이 있을 경우 while문에서도 { }로 구분짓는 편이다.

  • 교수님코드
#include <stdio.h>

int main()
{
    int number;
    scanf("%d", &number);
    
    if (number > 5)
    {
        if (number < 10)
        printf("Larger than 5 smaller than 10\n");
        else
            printf("Larger than 10");
    }
    else
        printf("Less than or equal to 5");
    
    
    return 0;
}

if와 else를 여러번 활용할 경우

구획을 명확하게 지어주자.

구획을 굳이 명확히 안해도 되는경우

else와 if를 연달아 쓰는 경우다.

밑에 예시를 보자

  • 교수님코드
#include <stdio.h>

int main()
{
		int number;
		scanf("%d", &number);

		if (number == 1)
				printf("One");
			else
					if (number == 2)
							printf("Two");
						else
								if (number == 3)
										printf("Three");

return 0;
}

else if를 굳이 써도 되지만

나눠서 else와 if를 순차적인 구조로 쓴다면

굳이 명확히 구획할 필요가 없다.

하지만 나는 초보니까 헷갈리면 {}로 구역나눔을 생활화 하자.

가끔 {}가 더 복잡해 보일 경우를 빼고는

Comments