티스토리 뷰

jungol > 문제 > Langauge_Corder > 선택제어문 - 자가진단 1~4


자가진단 1

 



드디어 if 을 사용한다!

if()에서 () 안에는 조건을 넣을 수 있고
조건을 만족하면 if()옆의 코드가 실행되나,
아닐 경우엔 실행되지 않고 그냥 지나친다.

  • 문제 조건


정수를 입력받되 음수 일 경우 minus를 출력


코드


이번 문제는 정수를 입력받되 음수 일 경우
minus를 출력하는 것이기 때문에

if의 조건을 입력받는 (정수 < 0)으로
했다!

9) if(a < 0) printf("minus");

-> 입력받은 수가 0보다 작으면 -> minus을 출력


여러번 실행


잘 작동한다!



 

자가진단 2

 

 

  • 문제 조건

문제에선 키와 몸무게를 정수로 입력받고
몸무게+100-키의 값과
몸무게+100-키의 값이 0보다 크면
Obesity을 출력한다.


코드


몸무게는 weight
키는 tall
로 변수를 만들어 받았다.

조건은
몸무게+100-키 > 0이므로
weight+100-tall>0가 되며

12) if(weight+100-tall>0) printf("Obesity");

이처럼 조건을 만족 시 Obesity을 출력하게 했다.



실행결과들


실행결과들을 보면
몸무게+100-키의 값이 출력되고
그 값이 0보다 크면 Obesity가 출력되는 것을 볼 수 있다!



 

자가진단 3

 

  • 문제 조건

1) 입력 받은 수가 20 이상 adult출력
2) 입력 받은 수가 20 미만 20살까지 얼마나 남았는지를 출력 (남은 년도 years later)



코드


if와 else

문제의 조건은 2개이나 하나로 퉁칠 수 있다!

입력 받은 수가 20 이상의 역은
20 미만 이므로

c언어에선 이를
if(입력받은 수>=20)
if(입력받은 수 < 20)
이렇게 따로따로 하도 되나

if(입력받은 수 >= 20)
else
이렇게 첫번째 조건의 역은 else로 간단히 쓸 수 있다.

else

else는 먼저 나온 조건과 반대인 조건을 이용할 때

사용한다.

실행


여러번 실행했을 때의 결과다!



 

자가진단 4

 



이번에는 많은 조건문을 사용해야 한다!
한 문제에 대해서 여러 조건을 사용하려면
if else if else if...... else
이렇게 else if 을 사용하면 된다.





else if

else if

첫 번째 if에서 사용했던 조건과는 부합되지 않되 다른 조건이라는 의미다.

(else는 나머지다)

그러므로 보통
if
else if
else if
else if
...
else
이런 식으로 여러 조건을 작성한다.


그래서 8~12줄을 보면
if, else if... else의 구조로 조건들을 적었다!

여기서 8, 9만 보면

8) if(a < 50.80)
9) else if(a <= 61.23)

에서 9)의 else if(a <= 61.23)과 그냥 if(a <= 61.23)은 다르다.

else if(a <= 61.23)에서
else은 a < 50.80의 역, 즉 a >= 50.80이며
이는 else if(a <= 61.23)가
if(a >= 50.80 && a<= 61.23)와 같음을 의미한다!

9) else if(a <= 61.23)
10) else if(a <= 72.57)

여기 10)의 else은 if(a <= 50.80)와 if(a <= 61.23)의 역이므로
else if(a <= 72.57)은
if(a >= 61.23 && a<= 72.57)이다!

실행


잘 작동된다!




코드

 

자가진단 1
#include <stdio.h>

int main(void)
{
int a = 0;
scanf("%d", &a);
printf("%d\n", a);
if (a < 0) printf("minus");
return 0;
}
자가진단 2
#include <stdio.h>

int main(void)
{
int tall = 0;
int weight = 0;

scanf("%d", &tall);
scanf("%d", &weight);

printf("%d\n", weight+100-tall);
if (weight+100-tall>0) printf("Obesity\n");

return 0;
}
자가진단 3
#include <stdio.h>

int main(void)
{
int a = 0;
scanf("%d", &a);

if (a > 20) printf("adult\n");
else printf("%d years later", 20-a);
return 0;
}
자가진단 4
#include <stdio.h>

int main(void)
{
float a = 0.0;
scanf("%f", &a);

if (a < 50.80) printf("Flyweight\n");
else if (a < 61.23) printf("Lightweight\n");
else if (a < 72.57) printf("Middleweight\n");
else if (a < 88.45) printf("Crusierweight\n");
else printf("Heavyweight\n");

return 0;
}
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함