php의 조건문, if문과 switch문

포스트 썸네일 이미지

이번에는 php의 조건문에 대해서 알아보겠다.

생활코딩의 수업 영상에서는 if문만 소개하고 있지만, 영상에서는 나오지 않는 switch문에 대해서도 정리해 보겠다.




이전 포스트




조건문이란?


조건문은 주어진 조건을 비교 판단하여 그 조건에 만족할 경우 지정된 명령을 실행하고, 만족하지 않을 경우 다음 단계의 명령을 수행하도록 하는 제어문이다.


php의 조건문에는 크게 4가지 종류가 있다.


  • 단순 if문
  • if-else문
  • 다중 if-else문
  • switch문


이 중에서 먼저 단순 if문에 대해서 정리해 보겠다.





단순 if문


단순 if문의 흐름

가장 간단한 단순 if문의 흐름은 이 그림과 같다.




<?php
$num = 12;

if ($num < 20) {
    echo 'Hello World!';
}
?>

문법은 이렇다.

( ) 안에는 조건문이 들어간다.

( ) 안의 조건문에 쓰여있는 값이 true일 경우에는 { } 안에 있는 실행 문장이 실행이 된다.

false일 경우에는 { }를 건너뛰고 다음으로 넘어가게 된다.





if-else문


if-else문의 흐름

if-else문의 흐름은 위의 그림과 같다.

'단순 if문'과의 차이점은 if문은 조건문이 true일 경우에만 실행할 문장이 있고, false면 그냥 다음으로 넘어갔지만, if-else문은 조건문이 false일 경우에도 실행할 문장이 따로 있다.





<?php
$age = 25;

if ($age >= 20) {
    echo '성인입니다.';
} else {
    echo '미성년자입니다.';
}
?>

(여기서는 아직 삼항연산자를 다루지는 않았지만) 삼항연산자와 거의 같은 기능이라고 보면 될 것 같다.

간단한 코드일 때에는 삼항연산자, 좀 더 길고 복잡한 조건문이라면 if-else문을 사용하면 되겠다.





다중 if-else문


다중 if-else문의 흐름

다중 if-else문의 흐름은 이렇다.




<?php
$grade = 69;

if ($grade >= 90) {
    echo 'A학점입니다.';
} elseif ($grade >= 80) {
    echo 'B학점입니다.';
} elseif ($grade >= 70) {
    echo 'C학점입니다.';
} elseif ($grade >= 60) {
    echo 'D학점입니다.';
} else {
    echo 'F학점입니다.';
}
?>

지금까지 배웠던 조건문과 비교를 하자면,

'단순 if문'은 조건문에 쓰여있는 값이 true일 경우에는 { } 안에 있는 실행 문장이 실행이 되고, false일 경우에는 { }를 건너뛰고 다음으로 넘어갔었다.

'if-else문'은 조건문이 false일 경우에도 실행할 실행문이 따로 있다.

그런데 다중 if-else문은 여러 개의 독립적인 조건을 순서대로 검사할 때 사용하기 때문에 조건문도 다 따로 존재한다.





switch문


이제부터 설명하는 switch문은 영상에서는 나오지 않는 내용이다.




switch문의 흐름

switch문의 흐름은 위에서 설명한 '다중 if-else문'과 같다.

위에서 정리한 if문들과는 문법이 조금 다른데, 개념은 다중 if-else문과 똑같다고 생각하면 된다.




<?php
$month = 11;

switch ($month) {
    case 3: case 4: case 5:
        echo $month.'월은 봄입니다.';
        break;
    case 6: case 7: case 8: case 9:
        echo $month.'월은 여름입니다.';
        break;
    case 10: case 11:
        echo $month.'월은 가을입니다.';
        break;
    case 12: case 1: case 2:
        echo $month.'월은 겨울입니다.';
        break;
    default: // if-else문에서의 else와 같은 기능
        echo $month.'월은 존재하지 않습니다.';
}
?>

casedefault의 옆에 쓰인 :는 세미콜론(;)이 아니라 그냥 콜론이라는 점을 주의하자.


일단 if문과의 차이는, if문은 '이 조건이 참인가?'를 묻는다.

그런데 switch문은 '이 값이 A인가, B인가, 아니면 C인가?'를 묻는다.


if문은 복잡하고 광범위한 조건으로 분기할 때 사용하고, switch문은 하나의 표현식 or 변수 값에 따라 여러 경우 중 하나를 선택할 때 사용한다.

다중 if-else문과 switch문 중에서 어느 것을 써도 상관은 없지만, 다중 if-else문은 조건이 많아질수록 느려질 수 있으니, 많은 수의 case가 있을 때는 if문보다 더 빠르게 작동하는 switch문도 적절하게 사용하도록 하자.




다음 포스트

이 글이 도움이 됐거나 유익했다면 스크롤을 조금만 더 내려서 댓글을 남겨주세요. (비로그인도 가능합니다!)
응원이나 피드백이 담긴 댓글은 제가 계속 블로그를 해나갈 수 있는 원동력이 됩니다. 😊

지인에게 보여주고 싶은 글이었다면 URL을 복사해서 메신저나 소셜 미디어에 공유해 주세요.

댓글 쓰기

0 Comments

문의하기 양식