C

관계/논리연산자, 조건문, 산술연산자

김꼬알 2023. 3. 10. 17:08

관계연산자 종류

연산자 결과값
== 10 == 9 0
!= 3 != 3 0
> 5 > 5 0
>= 5 >= 5 1
< 7 < 7 0
<= 7 <= 7 1

 

 

논리연산자 종류

연산자 결과값
! !9 0
&& 3 >= 3 && 3 > 3 0
|| 5 > 5 || 5 >= 5 1

 

 

조건문

  • 단순 if 문
if( 조건 ){
    조건이 만족할때의 처리;
}

 

  • if ~ else 문
if( 조건 ){
    조건이 만족할때의 처리;
}
else{
    조건이 아닐때의 처리
}

 

  • 다중 if 문
if( 조건1 ){
	조건이 만족할때의 처리;
}
else if(조건2){
	조건2가 만족할때의 처리
}
else{
	모든 조건이 아닐때의 처리
}

 

#include<stdio.h>
int main()
{
    int i = 3;
    int j = 4;
    if( (++i > j--) && (i++ < --j) ) i = i-- + ++j;    // && 앞부분이 거짓이므로 뒷부분은 연산하지 않고 else로 넘어감
    else j = i-- - --j;
    printf("%d\n", i);    // 결과값은 3이 출력 됨
}    // 단항 연산자가 앞에 있으면 연산하기 전에 반영, 뒤에 있으면 연산을 수행한 후에 반영

 

#include<stdio.h>
int main(){
    int a = 3+5, b = 1, c;
    int ap, bp;
    ap = a++;    // 8을 ap 값에 넣어준 후에 ++를 수행하므로 a = 9가 됨
    bp = ++b;    // ++가 앞에 있으므로 b = 2가 된 후에 bp에 넣어줌
    b = 3 * (ap == 8);    // ap = 8 이므로 b = 3 * 1
    c = 5 * (ap != 8);    // c = 5 * 0
    printf("%d %d %d %d %d", a, b, c, ap, bp);    // 9 3 0 8 2 가 출력됨
}

 

int a = 10, b = 20;
num = (a++ == 11) && (b++ == 20);    // 10 == 11 비교한 다음 ++를 수행하므로 num = 0

※ && 연산할 때, 앞 부분이 거짓일 경우 뒷 부분은 수행하지 않는다

'C' 카테고리의 다른 글

진법변환, 비트연산, 매크로  (0) 2023.03.13
출력형식  (0) 2023.03.10
산술연산자, 연산자 우선순위  (0) 2023.03.08
변수의 종류와 유효범위  (0) 2023.03.08
컴파일러, 인터프리터  (0) 2023.03.08