..

Search

17) 조건문

조건문


PHP 표현식

표현식(expressions)은 PHP에서 가장 중요한 구성요소입니다.

표현식이란 모든 것이 값을 갖는다는 의미이며, PHP에서 사용하는 거의 모든 것이 표현식에 속합니다.

표현식에는 변수와 상수, 함수까지도 포함되며, 제어문이나 명령문도 모두 표현식에 속합니다.


제어문

표현식 중에서도 프로그램의 순차적인 흐름을 제어해야 할 때 사용하는 명령문을 제어문이라고 합니다.

이러한 제어문에는 조건문, 반복문 등이 포함됩니다.


조건문

조건문이란 프로그램 내에서 주어진 조건식의 결과에 따라 별도의 명령을 수행하도록 제어하는 명령문입니다.

조건문 중에서 가장 기본이 되는 명령문은 if 문입니다.


if 문

if 문은 조건식의 결과가 참(true)이면 주어진 명령문을 실행하며, 거짓(false)이면 아무것도 실행하지 않습니다.

 

if 문을 순서도로 표현하면 다음 그림과 같이 표현할 수 있습니다.

 

if 문


if 문의 문법은 다음과 같습니다.

문법

if (조건식) {
    조건식의 결과가 참일 실행하고자 하는 명령문;
}

 

예제

$num_01 = 10;
$num_02 = 20;
if ($num_01 == $num_02) {
    echo "{$num_01}과 {$num_02}은 같은 수입니다.";
}
if ($num_01 < $num_02) {
    echo "{$num_01}은 {$num_02}보다 작은 수입니다.";
}
if ($num_01 > $num_02) // 실행될 명령문이 한 줄뿐이라면 중괄호({})를 생략할 수 있음.
    echo "{$num_01}은 {$num_02}보다 큰 수입니다.";

코딩연습 ▶

 

if 문에서 실행될 명령문이 한 줄뿐이라면 중괄호({})를 생략할 수 있습니다.

else 문

if 문과 같이 사용할 수 있는 else 문은 if 문의 조건식 결과가 거짓(false)일 때 주어진 명령문을 실행합니다.

 

else 문을 순서도로 표현하면 다음 그림과 같이 표현할 수 있습니다.

 

if / else 문

 

else 문의 문법은 다음과 같습니다.

문법

if (조건식) {
    조건식의 결과가 참일 때 실행하고자 하는 명령문;
}
else {
    조건식의 결과가 거짓일 때 실행하고자 하는 명령문;
}

 

else 문을 사용하면 앞선 예제를 좀 더 직관적으로 표현할 수 있습니다.

예제

$num_01 = 20;
$num_02 = 20;
if ($num_01 == $num_02) {
    echo "{$num_01}과 {$num_02}은 같은 수입니다.";
}
else {
    if ($num_01 < $num_02)
        echo "{$num_01}은 {$num_02}보다 작은 수입니다.";
    else // $num_01 > $num_02
        echo "{$num_01}은 {$num_02}보다 큰 수입니다.";
}

코딩연습 ▶

 

else 문에서도 실행될 명령문이 한 줄뿐이라면 중괄호({})를 생략할 수 있습니다.

elseif 문

elseif 문은 if 문처럼 조건식을 설정할 수 있으므로, 중첩된 if 문을 좀 더 간결하게 표현할 수 있습니다.

하나의 조건문 안에서 if 문과 else 문은 단 한 번만 사용될 수 있습니다.

하지만 elseif 문은 여러 번 사용되어 다양한 조건을 설정할 수 있습니다.

 

C언어에서는 else if 문을 작성할 때 else와 if 사이에 반드시 공백이 있어야 합니다.
하지만 PHP에서는 elseif와 else if를 둘 다 사용할 수 있습니다.

 

elseif 문을 순서도로 표현하면 다음 그림과 같이 표현할 수 있습니다.

 

elseif 문

 

elseif 문의 문법은 다음과 같습니다.

문법

if (조건식1) {
    조건식1의 결과가 참일 때 실행하고자 하는 명령문;
}
elseif (조건식2) {
    조건식2의 결과가 참일 때 실행하고자 하는 명령문;
}
else {
    조건식1의 결과도 거짓이고, 조건식2의 결과도 거짓일 때 실행하고자 하는 명령문;
}

 

elseif 문을 사용하면 앞선 예제를 더욱 간결하게 표현할 수 있습니다.

예제

$num_01 = 30;
$num_02 = 20;
if ($num_01 == $num_02) {
    echo "{$num_01}과 {$num_02}은 같은 수입니다.";
}
elseif ($num_01 < $num_02) {
    echo "{$num_01}은 {$num_02}보다 작은 수입니다.";
}
else { // $num_01 > $num_02
    echo "{$num_01}은 {$num_02}보다 큰 수입니다.";
}

코딩연습 ▶

 

elseif 문에서도 실행될 명령문이 한 줄뿐이라면 중괄호({})를 생략할 수 있습니다.

삼항 연산자에 의한 조건문

PHP에서는 C언어와 마찬가지로 간단한 if / else 문을 삼항 연산자를 이용하여 간단히 표현할 수 있습니다.

 

삼항 연산자에 대한 더 자세한 사항은 PHP 기타 연산자 수업에서 확인할 수 있습니다.

 

PHP 기타 연산자 수업 확인 =>


switch 문

switch 문은 if / else 문과 마찬가지로 주어진 조건 값에 따라 프로그램이 다른 명령을 수행하도록 하는 조건문입니다.

이러한 switch 문은 if / else 문보다 가독성 측면에서 더 좋습니다.

 

PHP의 switch 문에서는 주어진 조건 값과 case 절의 값을 일치 연산자(===)를 사용하여 엄격하게 비교하지 않고, 동등 연산자(==)를 사용하여 느슨하게 비교합니다.

 

switch 문의 문법은 다음과 같습니다.

문법

switch (조건 값)
{
    case 값1:
        조건 값이 값1일 때 실행하고자 하는 명령문;
        break;
    case 값2:
        조건 값이 값2일 때 실행하고자 하는 명령문;
        break;
    ...
    default:
        해당 case가 없을 때 실행하고자 하는 명령문;
        break;
}

 

default 절은 조건 값이 위에 나열된 어떠한 case 절에도 해당하지 않을 때 실행됩니다.

이 구문은 반드시 존재해야 하는 것은 아니며, 필요할 때만 선언할 수 있습니다.

 

각 case 절 및 default 절은 반드시 break 키워드를 포함하고 있어야 합니다.

break 키워드는 조건 값에 해당하는 case 절이나 default 절이 실행된 뒤에 전체 switch 문을 빠져나가게 해줍니다.

 

default 절의 위치가 반드시 switch 문의 맨 마지막일 필요는 없습니다.

 

break 키워드에 대한 더 자세한 사항은 PHP 기타 제어문 수업에서 확인할 수 있습니다.

 

PHP 기타 제어문 수업 확인 =>

 

예제

$var = "오렌지";
switch ($var) {
    case "귤":
        echo "여기 있는 과일은 귤입니다.";
        break;
    case "사과":
        echo "여기 있는 과일은 사과입니다.";
        break;
    case "바나나":
        echo "여기 있는 과일은 바나나입니다.";
        break;
    default:
        echo "여기 있는 과일은 처음 보는 과일입니다.";
        break;
}

코딩연습 ▶

 

다음 예제와 같이 여러 개의 case 절을 사용하여 여러 개의 조건을 한 번에 표현할 수도 있습니다.

예제

$var = "아보카도";
switch ($var) {
    case "귤":
    case "사과":
    case "바나나":
    case "아보카도":
        echo "여기 있는 과일은 제가 먹어본 과일입니다.";
        break;
    case "파파야":
    case "두리안":
    case "석가":
        echo "여기 있는 과일은 제가 먹어보지 못한 과일입니다.";
        break;
    default:
        echo "여기 있는 것은 과일이 아닙니다.";
        break;
}

코딩연습 ▶


연습문제