티스토리 뷰

C언어

[C언어-조건문]: if절

문화택시 2024. 4. 28. 09:54

목차



    ※if 문의 조건식

    -------------------------
    if(조건식)
        명령문
    -------------------------

     

     

    위에처럼 if문안에 조건식이 참인지 거짓인지에따라 명령문이 실행되고 실행되지 않은 두가지 결정이 나오게 되는 함수이다.

     

     

    ※if문의 항상 성립하는 조건

    if문의 조건식이 0일때

    #include<stdio.h>
    int main() {
    	if (0)
    		printf("문화택시");
    	return 0;
    }

     

     

    if문의 조건식이 1일때

    #include<stdio.h>
    int main() {
    	if (1)
    		printf("문화택시");
    	return 0;
    }

     

     

    위에처럼 if문의 조건식이 0이면 항상 거짓, 조건식이 1이면 항상 참으로 판명하게 된다.

     

     

    ※if문과 연산자

    #include<stdio.h>
    int main() {
    	if(1+0==1)
    		printf("문화택시");
    	if (0 * 1 == 1)
    		printf("고속택시");
    	if (1 / 0 == 1)
    		printf("뉴스택시");
    	if (1 % 1 == 1)
    		printf("건강택시");
    	return 0;
    }

     

     

    연산자가 if문에도 적용되어 1+0==1은 참,0*1==1은 거짓,1/0==1은 거짓,1%1==1도 거짓으로 문화택시만 출력되었다.

     

     

    ※if문의 비교연산자와 조건식

    #include<stdio.h>
    int main() {
    	if (1>0)
    		printf("문화택시");
    	if (0>1)
    		printf("고속택시");
    	return 0;
    }

     

     

    if문에는 비교연산자가 사용될 수 있어 위에처럼 1>0는 문화택시, 0>1 고속택시지만 1은 0보다 큰 수로

    1>0인 조건문이 참이 되고, 0<1 조건문은 거짓이 되었기에 문화택시만 출력되었다.

     

     

    ※if문의 논리연산자와 조건식

    &&논리연산자

    #include<stdio.h>
    int main() {
    	if (1 && 1)
    		printf("문화택시");
    	if (0 && 1)
    		printf("고속택시");
    	return 0;
    }

     

     

    논리연산자 &&의 성질인 둘 다 참이여야 실행되는 성질이 조건문에서도 적용되어 위에 if(1 && 1)은 둘 다 참이 되어 실행되었지만 고속택시는 if(0 && 1)은 하나가 거짓이 되어 실행되지 못했다.

     

    ||논리연산자

    #include<stdio.h>
    int main() {
    	if (1 || 1)
    		printf("문화택시");
    	if (0 || 1)
    		printf("고속택시");
    	return 0;
    }

     

     

    논리연산자 ||의 성질인 둘 중 하나만 참이되어도 실행되는 성질이 작용되어 위랑 똑같은 조건문이지만 둘 다 참이 2개, 1개로 둘 다 실행되게 되었다.

     

    !논리연산자

    #include<stdio.h>
    int main() {
    	if (!1)
    		printf("문화택시");
    	if (!0)
    		printf("고속택시");
    	return 0;
    }

     

     

    논리연산자 !의 성질인 참이 거짓이되고 거짓이 참이 되는 성질이 적용되어 항상 참이 1이 거짓이 되었고 항상 거짓인 0이 참이되어 고속택시가 출력되었다.

     

     

    ※if문의 단일 명령문과 복합명령문

    단일 명령문

    #include<stdio.h>
    int main() {
    	if(0)
    		printf("문화택시");	
    		printf("고속택시");
    	return 0;
    }

     

     

    if절은 범위를 지정하지 않았을때는 한줄만 범위에 들어가  문화 택시는 if(0)의 범위 안에 들어가 출력이 되지 않았지만 고속택시는 범위에 들어가지않아 출력되었다.

     

    복합 명령문

    #include<stdio.h>
    int main() {
    	if (0) {
    		printf("문화택시");
    		printf("고속택시");
    	}
    	return 0;
    }

     

     

    아까와 달리 범위를 {}로 지정하니 둘 다 범위안에 들어가 거짓으로 판명되어 아무것도 출력되지 않았다.

    반응형