본문 바로가기
C언어

[C언어 기초] if, switch문으로 조건 걸기

by 호일이 2020. 5. 3.

적에 공격당했을 때 HP가 깎인다.

앞에 벽이 있으면 갈 수 없다.

단축키를 누르면 스킬이 나간다. 

등등 게임은 여러가지 조건들로 이루어져있습니다.

게임뿐만 아니라 다른 프로그램도 변수와 조건들을 조합한 결과물입니다.

이러한 조건을 만드는 if문과 switch문에 대해 알아보겠습니다.

 

if문

if문을 사용하려면 먼저 비교 연산자에 대해 알아야합니다.

 

비교 연산자

n < 0 : n이 0보다 작으면 true(참), 그렇지 않다면 false(거짓)를 반환합니다.

n > 0 : 위와 반대입니다.

n <= 0 : n이 0보다 작거나 같으면 true, 그렇지 않다면 false를 반환합니다.

n >= 0 : 위와 반대입니다.

n == 0 : n과 0이 같으면 true, 그렇지 않다면 false를 반환합니다.

 

if문 형식

if(true 혹은 false를 반환하는 조건식)

{

    참일 경우 중괄호안의 코드를 실행

}

거짓일 경우 중괄호를 넘어감

 

if문 예제

실행 결과

 

 

if else문

if else 형식

if(n > 10)

{

    ...

}

else if(n > 5)

{

    ...

}

else // 위 조건 전부 참이 아닐 때 실행

{

    ...

}

단순히 여러개의 조건을 나열한 것 같아보이지만

if else문은 3개의 조건중 만족시키는 조건이 여러개가 있더라도 반드시 1개의 조건만 실행하고 빠져나옵니다.

예를 들어 n이 15면

if(n > 10)과

else if(n > 5)의 조건이 참이지만

if(n > 10)의 중괄호만 실행하고 else if{...}와 else{...}는 실행되지 않습니다.

 

C언어에서는 위에서 아래로 코드를 실행하기 때문에 1개의 조건만 실행된다면 위쪽의 코드가 실행되는 것입니다.

 

if else문 예제

실행 결과

 

 

Switch문

switch문 형식

switch(변수)

{

    case n1:    // 변수의 데이터타입에 맞춰야 함

        ...

        break;

    case n2:

        ...

        break;

    default:     // 위 조건이 전부 참이 아닐 때 실행 else와 같음

        ... 

        break;

}

 

switch문 예제

1.

switch문의 case에는 비교 연산자를 사용할 수 없습니다.

그러나 하나의 변수를 여러번 비교할 때 if문보다 깔끔하게 쓸 수 있다는 장점이 있어서 사용됩니다.

2. 

2번 예제를 보면 n이 1, 2 둘 중 하나만 만족해도 실행됩니다.

이것은 or 라는 논리연산자를 써서 if문에서도 구현할 수 있습니다. 밑에서 논리연산자에 대해 설명하겠습니다.

 

 

논리연산자

&&(AND 연산자) n >= 1 && n <= 10 양쪽의 논리값이 전부 참일 때만 true 반환
||(OR 연산자) n < 0 || n > 10 양쪽의 논리값 중 하나만 참이면 true 반환
!(NOT 연산자) n != 0,!(n > 0) 논리값을 반대로 바꿈

NOT 연산자 추가 설명

n != 0 : n과 0이 같지 않다면 true반환

!(n > 0) : n이 0보다 작거나 같으면 true반환

조건식 전체에 괄호를 감싸고 왼쪽에 !를 쓰면 참과 거짓이 반대로 됩니다.

 

논리연산자 예제

실행 결과

 

읽어주셔서 감사합니다.

반응형

댓글