프로그래밍 언어/PHP

if문의 중첩

· 코딩마이데이

if의 세가지 구문들은 각각 단독으로 사용되기도 하지만 경우에 따라서는 여러 개의 구문이 중첩되어 사용됩니다.

 

생년월일에 따라 만 나이를 계산하는 프로그램을 생각해봅시다. 만 나이는 생년월일과 오늘의 날짜에 따라 계산됩니다.

 

다음 예제에서는 만 나이를 계산하기 위해 if~ elseif~ else 구분 안에 if~ else~ 구문을 중첩해서 사용하고 있습니다.

 

03/ex3-6.php

<?php
    $now_year = 2022; # 02
    $now_month = 4;
    $now_day = 15; # 04

    $birth_year = 2000; # 06
    $birth_month = 7;
    $birth_day = 10; # 08

    if ($birth_month < $now_month) # 10
        $age = $now_year - $birth_year;
    else if ($birth_month == $now_month) # 12
    {
        if ($birth_day <= $now_day)
            $age = $now_year - $birth_year;
        else
            $age = $now_year - $birth_year - 1;
    }
    else # 19
        $age = $now_year - $birth_year - 1;
    
    echo "오늘 날짜 : ".$now_year."/".$now_month."/".$now_day."<br>";
    echo "출생년월일 : ".$birth_year."/".$birth_month."/".$birth_day."<br>";
    echo "만 나이 : ".$age."세";
?>

ex3-6.php의 실행 결과

 

02~04

$now_year = 2022;
$now_month = 4;
$now_day = 15;

현재 연월일을 2022년 4월 15로 설정합니다.

 

06~08

$birth_year = 2000;

$birth_month = 7;
$birth_day = 10;

출생 연월일을 2000년 7월 10일로 설정합니다.

 

10, 12, 19

if~ elseif~ else~ 구문을 이용하여 출생 월($birth_month)과 현재 월($now_month)을 비교합니다.

여기서는 $birth_month가 7이고, $now_month는 4이다. 따라서 else에 속하는 나이 $age는 '2020 - 2000 - 1'의 수식에 의해 21의 값을 가집니다.

 

이번에는 다음과 같이 월 $birth_month가 4인 경우를 생각해봅시다.

$birth_year = 2000;
$birth_month = 4;
$birth_day = 10;

 

elseif의 조건식은 4 == 4가 되어 참이 됩니다. 따라서 if~ else~ 구문이 실햅됩니다.

 

if의 조건식에서 출생 일($birth_day)과 현재 일($now_day)을 서로 비교하면 만 나이를 계산합니다. 이 경우의 만 나이는 20세가 됩니다.

 

정리하면 if문은 if~ 구문, if~ else~ 구문, if~ elseif~ else~ 구문 중의 하나가 단독으로 사용될 수 있고, 경우에 따라서는 이 if구문들이 서로 중첩되어 사용되기도 합니다.

 

'프로그래밍 언어 > PHP' 카테고리의 다른 글

while 문  (0) 2026.05.05
switch문  (0) 2026.05.05
if~ elseif~ else~  (0) 2026.05.04
if~ else~ 구문  (0) 2026.05.04
if~ 구문  (0) 2026.05.03