조건문의 중복


선택과 결정if 조건 제어문은 참(true)과 거짓(false), 또 다른 조건(else if)을 통해 계속 참과 거짓 조건을 연결하여 처리할 수 있습니다. 하지만 이렇게 1차원적인 조건이 아니라 어떤 조건을 만족하면서 또 다른 조건을 판별할 수 있는 2차원적인 조건은 어떻게 작성을 할까요?

else if조건문을 설명할 때 또 다른 표현법으로 if 조건 안에 또 다른 if 조건문이 들어간 문법적 표현을 보았을 것입니다. if 조건문은 또 다른 if 조건문을 포함할 수 있습니다. 즉, 하나의 if 조건문 상태 안에 또 다른 조건을 추가할 수 있습니다.

다수의 선택에 있어서 참의 조건을 계속 판별하거나 거짓의 조건을 계속 판별해가는 다중 조건을 처리하는 데 이중 조건 중복은 매우 유용합니다. 다음 그림은 이중 중복 조건을 순서도로 그려서 표현하면 다음과 같습니다.

이중 조건문은 참 조건 블록 안에 넣을 수도 있고, 거짓 조건 블록 안에 넣을 수도 있습니다. 즉, 중괄호 블록으로 둘러싸인 코드 안에는 중복으로 코드를 이중화할 수 있습니다.


프로그램 계층화


우리의 프로그램은 하나의 명령을 순차적으로 실행합니다. 즉 한 줄 한 줄 실행합니다. 하지만 조건 제어문을 만나게 되면 코딩 로직이 조건에 따라 분기됩니다.

중복 조건의 처리는 프로그램이 작성이 1단계로 순차적으로 작성되는 것과 달리 계층적으로 단계(계단)화되는 것과 유사합니다. 위의 이중 조건을 문법적으로 다음과 같이 작성을 해볼 수 있습니다.

|문법|

if (조건1) {

	조건1 만족할  실행 코드;

	if (조건2) {
		조건2 만족할  실행 코드;  
	}

}

조건의 중복 제한의 수는 없습니다. 필요한 만큼 2차, 3차로 세분화하여 작성할 수 있습니다. 조건이 많을수록 프로그램은 복잡해지고 고도화된 작업들을 처리합니다.

|문법|

if (조건1) {

	조건1 만족할  실행 코드;

	if (조건2) {
		조건2 만족할  실행 코드;  
	}

} else {
	조건1 만족하자 않을  실행 코드;

	if (조건3) {
		조건3 만족할  실행 코드;  
	}

}

다음은 이중 조건문을 통해 성별과 성년 나이를 확인하는 간단한 예제입니다.

예제 파일 if-06.php

<?php
	$age = 20;
  	$sex = "woman";
  	$type = "coperation";

  	if ($sex == "man") {
    	
    		if ($age >= 20) {
      			echo "성인 남자입니다.";
    		} else {
      			echo "미성년자 남자입니다.";
    		}

  	} else if ($sex == "woman") {
    	
    		if($age >= 20){
      			echo "성인 여자입니다.";
    		} else {
      			echo "미성년자 여자입니다.";
    		}

  	} else if ($sex == "company") {
    	
    		if ($type == "personal") {
      			echo "개인 기업입니다.";
    		} else {
    			echo "법인 기업입니다.";
    		}

	} else {
    		echo "성별을 구분할 수 없습니다.";
	}

?>

결과

성인 여자입니다.

위의 예제는 성별 변수 $sex를 세 가지 상태로 구분합니다. 또한 각각의 나이 $age 변수에 따라서 “성년”과 “미성년자”를 구분합니다. 기업회원인 경우에는 “법인”과 “개인” 기업으로 구분합니다.

중복 제어문은 이처럼 다양한 조건과 상태에 따라서 복합적으로 선택과 결정을 할 수 있습니다.