이번에는 php의 조건문에 대해서 알아보겠다.
생활코딩의 수업 영상에서는 if문만 소개하고 있지만, 영상에서는 나오지 않는 switch문에 대해서도 정리해 보겠다.
이전 포스트
php 디버깅 용도의 내장 함수 var_dump와 데이터 타입 Boolean
조건문이란?
조건문은 주어진 조건을 비교 판단하여 그 조건에 만족할 경우 지정된 명령을 실행하고, 만족하지 않을 경우 다음 단계의 명령을 수행하도록 하는 제어문이다.
php의 조건문에는 크게 4가지 종류가 있다.
- 단순 if문
- if-else문
- 다중 if-else문
- switch문
이 중에서 먼저 단순 if문에 대해서 정리해 보겠다.
단순 if문
가장 간단한 단순 if문의 흐름은 이 그림과 같다.
<?php
$num = 12;
if ($num < 20) {
echo 'Hello World!';
}
?>
문법은 이렇다.
( ) 안에는 조건문이 들어간다.
( ) 안의 조건문에 쓰여있는 값이 true일 경우에는 { } 안에 있는 실행 문장이 실행이 된다.
false일 경우에는 { }를 건너뛰고 다음으로 넘어가게 된다.
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문의 흐름은 이렇다.
<?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문의 흐름은 위에서 설명한 '다중 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.'월은 존재하지 않습니다.';
}
?>
case와 default의 옆에 쓰인 :는 세미콜론(;)이 아니라 그냥 콜론이라는 점을 주의하자.
일단 if문과의 차이는, if문은 '이 조건이 참인가?'를 묻는다.
그런데 switch문은 '이 값이 A인가, B인가, 아니면 C인가?'를 묻는다.
if문은 복잡하고 광범위한 조건으로 분기할 때 사용하고, switch문은 하나의 표현식 or 변수 값에 따라 여러 경우 중 하나를 선택할 때 사용한다.
다중 if-else문과 switch문 중에서 어느 것을 써도 상관은 없지만, 다중 if-else문은 조건이 많아질수록 느려질 수 있으니, 많은 수의 case가 있을 때는 if문보다 더 빠르게 작동하는 switch문도 적절하게 사용하도록 하자.
다음 포스트
php 내장 함수 isset과 empty의 차이 (변수 상태 및 유효성을 확인하는 함수)
응원이나 피드백이 담긴 댓글은 제가 계속 블로그를 해나갈 수 있는 원동력이 됩니다. 😊
지인에게 보여주고 싶은 글이었다면 URL을 복사해서 메신저나 소셜 미디어에 공유해 주세요.




0 Comments
댓글 쓰기
🔸 댓글은 블로그 운영자의 승인 후에 블로그에 표시됩니다.
🔸 비로그인 방문자 분께서는 '익명'보다 이름/URL로 댓글을 남겨주시면 감사하겠습니다. (URL은 생략 가능합니다.)
🔸 구글 로그인 방문자는 '알림 사용'에 체크를 하시면, 남겨주신 댓글에 대한 답글 알림을 메일로 받아볼 수 있습니다. 📩