C if

떵떵·2022년 6월 4일
0

c언어의 조건식 if

int main()
{
	if (조건식)
    {
    	조건식이 참일때
        - 코드 -
    }
}

기본예제

int main()
{
	int num;
    scanf("%d", &num);
    
	if (num > 0)
    {
    	printf("조건식이 참 입니다. %d\n", num);
        - 코드 -
    }
}

위 코드에서 scanf()로 터미널에서 0 이상의 정수를 입력한다면 if문의 조건식(num > 0)이 참이 되기 때문에 if문 안의 코드가 실행되어

조건식이 참 입니다. (입력값)

이 표준출력 될 것이다.

주의

if문의 사용할때 뒤에 세미콜론(;)을 붙이면 안된다.

	if (조건식);
    {
    	printf("조건식이 참 입니다.\n");
    }

위 코드와 같이 조건식 뒤에 ;을 붙이고 중괄호({})를 시작하면

if(조건식);

printf("조건식이 참 입니다.\n");

if문과 printf문이 전혀 관계없는 상태가 되므로 if문의 조건식이 '거짓'이어도 printf문이 실행되어 출력값이 표준출력 됩니다.

why? c언어는 코드를 중괄호({})를 감싸도 정상실행되기 때문에 컴파일 오류가 안 남

중괄호({})

if문에서 실행할 코드가 한 줄 이하일때 중괄호({})를 생략할 수 있다.

if (num > 0) printf("num이 0 이상 입니다.");

or

if (num > 0) 
	printf("num이 0 이상 입니다.");

만약 실행할 코드가 두개 이상일 때 중괄호를 생략한다면

if (num > 0)
	printf("num이 0 이상 입니다.");
    printf("num이 %d이므로 0 이상입니다.",num);

num이 0이므로 0 이상입니다.

num = 0 이어도 2번째 printf문은 출력이 된다.

비교

if문의 (조건식)에서 비교연산자를 사용하여 비교가 참일때 코드를 실행할 수 있다.

int main()
{
	float num1 = 1.31f;
    char c1 = 'a';
    
    if (c1 == 'a')
    	printf("c1이 a 입니다");
        
    if (num1 == 3.14;)
    	printf("num1이 3.14입니다.);
}

비교할때 비교할 변수와 값, 변수와 변수의 자료형을 맞춰주어야 한다.

조건식 동작방식 0, 1

if문의 조건식에서 참과 거짓을 구분할 때 0과 1로도 구분 가능하다.

조건식의 결과가 0일때 거짓, 그외 음수와 양수들은 참이고 실수도 0.0f는 거짓 그 외의 실수들은 참이다.

주의

if (num = 10)

if의 조건식에 '=='이 아닌 '='만 쓴다면 num에 10을 할당하고
조건식에서 num은 10이 되므로 if문이 무조건 참이 된다.

num이 10인지 비교하고 참과 거짓의 조건문이 아닌 num에 10을 할당하여 참일 때 코드만 실행되므로 원하는 조건문 사용이 아니기 때문에 잘 구분하여야 한다.

'='의 해결법

if문의 (조건식)에 비교연산자를 사용할때

if (10 == num)

처럼 비교할 숫자를 먼저쓰고 이후에 변수를 사용하면 실수를 예방할 수 있다.

if (num = 10)을 사용하면 컴파일시 오류가 안 나지만

if (10 = num)을 사용하면 컴파일시 오류가 나기때문에 빠르게 오류를 찾아서 해결할 수 있다.

else(분기)

if문은 분기(branch)가 가능한 문법으로 조건식이 참, 거짓 일때 실행할 코드를 작성할 수 있다.

int main()
{
	int num = 10;
    
    if (num == 10)
    {
    	printf("num이 10 입니다.\n");
    }
    else
    {
    	printf("num이 10이 아닙니다.\n");
    }
}

num이 10이면 if문의 printf문이 실행되고 10이 아닐때면 else문의 printf문이 실행된다.

주의사항

else문도 if문처럼 else바로 뒤에 세미콜론(;)을 사용하면 안된다.

실행될 코드가 2줄 이상일 때 중괄호({})를 생략하면 안된다.

if의 조건식 여러개 쓰기

하나의 if문을 사용할때 하나의 조건이아닌 여러개의 조건이 필요할 때 쓰는 방법이 있다.

ex1)

if (조건식1 || 조건식2) - 조건식1 이거나 조건식2 일때 실행

if (조건식1 && 조건식2) = 조건식1 이고 조건식2 일때 실행

or

if (조건식1)
	if (조건식2)
    	실행 코드
- 논리적으로 큰 if문 안에 if문을 또 사용하여 위의 조건을 구현할 수 있다.

0개의 댓글