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

[19일차](홍정모의따배c)조건연산자 '?' ':' 본문

🖥C

[19일차](홍정모의따배c)조건연산자 '?' ':'

졸린새 2020. 9. 26. 23:40
728x90

[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");

한줄로 줄여버리기도 가능

Comments