[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를 순차적인 구조로 쓴다면
굳이 명확히 구획할 필요가 없다.
하지만 나는 초보니까 헷갈리면 {}로 구역나눔을 생활화 하자.
가끔 {}가 더 복잡해 보일 경우를 빼고는