https://codeup.kr/problem.php?id=1065
세 정수 a, b, c가 입력되었을 때, 짝수만 출력해보자.
참고
if(조건)
{ //조건이 참일 때에만 실행되는 구역(코드블록의 시작)
실행1;
실행2;
...
} //코드블록의 끝
의 조건/선택 실행 구조는
주어진 “조건”을 검사해 그 결과가 참인 경우에만 코드블록 안에 작성된 내용들을 순서대로 실행한다.
예시
if(a%2==0)
{
printf(“%d”, a);
}
if(b%2==0)
{
printf(“%d”, b);
}
if(c%2==0)
{
printf(“%d”, c);
}
** a%2==0 은 a%2가 먼저 수행되고 그 결과를 0과 비교한 참/거짓 값을 계산한다.
a%2==0의 의미는 a를 2로 나눈 나머지를 0과 비교한 결과 값(참/거짓)이다.
따라서, if(a%2 == 0) 는 “a가 짝수라면?” 이라는 의미로 해석할 수 있다.
세 정수 a, b, c 가 공백을 두고 입력된다.
0 ~ +2147483647 범위의 정수들이 입력되며 적어도 1개는 짝수이다.
짝수만 순서대로 줄을 바꿔 출력한다.
a % 2 (a를 2로 나눈 나머지)가 0이면 a는 짝수, 0이 아닌 1이면 홀수이다. 이를 이용해 if문으로 a, b, c가 짝수인지 판별하여 참이면 출력한다.
#include <stdio.h>
int main(void)
{
int a, b, c;
scanf_s("%d %d %d", &a, &b, &c);
if (a % 2 == 0) {
printf("%d\n", a);
}
if (b % 2 == 0) {
printf("%d\n", b);
}
if (c % 2 == 0) {
printf("%d\n", c);
}
return 0;
}
if를 연달아 사용해 a, b, c 모두 짝수인지 판별한 다음 참이면 출력한다.
(만약 if, if else, else 순서대로 코드를 짜면, a가 짝수일 때 b, c는 판별해보지 않고 바로 a만 출력되고 프로그램은 종료된다.)
else if 를 쓰지않고 if 만으로 코드를 만들 수 있구나 알게 되었다.
if문에서 실행 내용이 printf 한 줄이라 중괄호를 쓰지 않아도 됐지만, 내용이 길어질 경우엔 중괄호를 써서 코드블록을 명확하게 구분해주자.