if

if

if는 조건문이라고 하며, if의 조건이 참이면 중괄호 안에 있는 동작을 수행합니다.

위의 소스는 두 수 ab를 입력받은 다음, 대소비교를 하는 소스입니다.

  1. a < bab보다 작을 때만 true(참)이고, 나머지 경우에는 false(거짓)입니다.
  2. a > bab보다 클 때만 true이고, 나머지 경우에는 false 입니다.

두 수가 같은지 같지 않은지를 비교하려면 ==를 이용하면 됩니다.

  1. a == bab와 같을 때만 true입니다.
  2. a != bab와 같지 않을 때만 true입니다.

마지막에 elseif 조건에 해당하지 않을 때 수행할 동작을 적어놓는 공간입니다.

입력으로 3 5를 한 경우에는 다음과 같이 출력됩니다.

작다
같지 않다

위에서 같지 않다가 출력되는 이유는 15번 줄 조건 a == bfalse라서, else를 수행하기 때문입니다.

입력으로 6 6을 넣은 경우에는 같다만 출력됩니다. 왜냐하면, 15번 줄 조건을 제외한 모든 조건은 false이기 때문입니다.

<소스 1>

이 소스는 if문 4개로 이루어져 있습니다.

위에서 부터 같다, 작다, 크다, 같지 않다 입니다.

else ifif문 (if-else문)에서 또다른 조건을 중간에 추가할 때 사용합니다.

<소스 2>

<소스 2>에는 else if가 추가되어 있습니다. 또, 그 위에 있던 <소스 1>과는 다른 결과를 출력합니다.

<소스 1>의 if문 4개는 모두 각각 다른 if문에 속합니다. 즉, 각각의 if문에 들어있는 조건을 매번 검사합니다.

소스 2의 if문은 모두 하나의 if문입니다. 가장 위에 있는 if문 부터 차례대로 조건문을 검사해서 참인 조건문이 있다면, 해당하는 블럭을 수행하고 if문을 빠져나가게 됩니다.

예를 들어,a = 3이고, b = 5인 경우를 생각해봅시다.

  • 7번 줄에 있는 if: false이기 때문에 넘어감
  • 9번 줄에 있는 else if: true이기 때문에 작다를 출력
  • trueif(else if)문을 발견했기 때문에 이후 else if, else는 검사하지 않고 바로 18번 줄로 이동

이렇게 if문 4개와 ifelse if를 이용한 if문은 다른 의미를 가지게 됩니다.

&& || !

이번엔 AND와 OR, 그리고 NOT에 대해서 알아보겠습니다.

AND는 &&이고, OR은 ||, NOT은 !입니다.

위의 소스는 세 수를 입력받습니다.

8번 줄의 if문에서 a == bb == c를 AND로 연결했습니다. a == bb == c가 모두 true인 경우에만 true이며, 3개 이상도 쓸 수 있습니다. (a == b && b == c && c == a)

14번 줄의 if문은 a == bb == c를 OR로 연결합니다. a == bb == c 둘 중 하나가 true이면 true이고, AND와 마찬가지로 3개 이상도 쓸 수 있습니다.

26번 줄의 if문에서 사용한 !은 NOT입니다. truefalse로, falsetrue로 바꾸게 됩니다. !(a==b)true가 되려면, a == bfalse이어야 합니다.

AND, OR, NOT은 모두 섞어서 쓸 수 있습니다. 또, 아래와 같이 단순 변수 비교가 아닌 식의 비교도 가능합니다.

여러가지 연산자를 사용한 경우에는 연산자 우선순위에 따라서 계산하게 됩니다.

연산자 우선순위는 http://ko.cppreference.com/w/cpp/language/operator_precedence 에서 찾아볼 수 있습니다.

댓글 댓글 쓰기