[19일차](홍정모의따배c)조건연산자 '?' ':'
*본 강의수기는 교수님의 모든 ppt나 코드 화면을 붙인게 아닙니다. 따로 출처 표시나 과제표시
안한 모든 코드와 사진자료의 출처는 본 강의의 교수님 입니다.
정리는 다시한번 제가 보기위함과 어떤강의인지 알려드리는 것이고
제가 적은건 이해를 돕기 위한 부연설명과 제가 이해한 몇개의 중심적인 내용이 다소
생략이 되었습니다. 이 수기를 통해 공부하려 하지말고 흥미로운 내용이라면
'인프런- 홍정모의 따라하며 배우는c' 과정을 수강하시길 바랍니다.
- 교수님코드
#include <stdio.h>
#include <stdbool.h>
int main()
{
int temp;
temp = true ? 1024 : 7;
printf("%d\n", temp);
temp = false ? 1024 : 7;
printf("%d\n", temp);
return 0;
}
조건 연산자는 '?'왼쪽에 있는 값이 true면 콜론왼쪽값을
false면 오른쪽값을 낸다.
- 문제
- 교수님코드
#include <stdio.h>
#include <stdbool.h>
int main()
{
int number;
scanf("%d", &number);
bool is_even;
if (number % 2 == 0)
is_even = true;
else
is_even = false;
if (is_even)
printf("Even");
else
printf("Odd");
return 0;
}
위 코드에서
bool타입으로 is_even을 선언하는줄 다음 if문과 else문을 없애고
조건연산자를 활용하여 구현해보라는 문제다
- 내코드
#include <stdio.h>
#include <stdbool.h>
int main()
{
int number;
scanf("%d", &number);
bool is_even;
number % 2 == 0 ? (is_even = true) : (is_even = false) ;
if (is_even)
printf("Even");
else
printf("Odd");
return 0;
}
한줄로 간결하게 요약된다.
is_even의 값을 정해줄 때 연산이 꼬일까봐 괄호를 쳤다.
흡족
- 교수님코드
#include <stdio.h>
#include <stdbool.h>
int main()
{
int number;
scanf("%d", &number);
bool is_even = (number % 2 == 0) ? true : false;
if (is_even)
printf("Even");
else
printf("Odd");
return 0;
}
```
간단하기도 하다..!
- 교수님코드
#include <stdio.h>
#include <stdbool.h>
int main()
{
int number;
scanf("%d", &number);
bool is_even = (number % 2 == 0) ? true : false;
if (is_even)
printf("Even");
else
printf("Odd");
return 0;
}
```
선언과 동시에 처리하게 만들수도 있다
(number % 2 == 0) ? printf("Even") : printf("Odd");
한줄로 줄여버리기도 가능