선택 결정 조건 제어문의 if 조건 블록 소괄호 ( ) 하나로 조건 값에 따라 참(true)과 거짓(false)으로 구분하여 동작합니다. 만일 조건이 한 가지 조건이 아닌 두 가지 조건을 모두 처리해야 한다면 앞에서 배운 조건의 중첩 또는 else if문을 통해 코드가가 분기되어 복잡할 수 있습니다.
if문의 조건은 연산 기호 &&, | 와 같은 논리 기호를 통해 여러 조건들을 연결하여 하나의 조건으로 묶어서 작성이 가능합니다. 이렇게 연결된 조건은 하나의 결과 값으로 처리되어 전체 연산 값에 대해서 참/거짓으로 판단하여 논리 값을 판별할 수 있습니다. |
논리 연산 기호 and 기호는 &&를 통해 두 가지 참 조건을 연결할 수 있습니다. AND는 디지털 논리 조건으로 입력되는 두 개의 입력 조건 모두가 참(true)인 경우에 결과도 참(true)을 출력합니다.
즉, 두 개의 값을 곱셈 형태로 연결하는 것과 같습니다. 두 개 조건 모두 참(true)을 확인할 때 사용할 수 있습니다.
&& 조건 연산 결합은 다음과 같은 문법으로 작성할 수 있습니다.
|문법|
if (조건A && 조건 B) {
참 동작 실행 코드;
} else {
거짓일 때 동작 처리 ;
}
예제 파일 if-07.php
<?php
$sex = "man";
$age = 21;
if ($sex == "man" && $age >= 20) {
echo "20세 이상의 남성입니다.";
}
?>
결과
20세 이상의 남성입니다.
위 예제는 이중 조건처리를 하지 않고 두 가지 조건을 동시에 검사하여 성별과 성년을 모두 한 번에 조건을 검사할 수 있습니다. && 조건의 입력은 A, B 두 개 값보다 더 많이 연결하여 아래와 같이 작성할 수 도 있습니다.
if(조건A && 조건B && 조건C && 조건D …)
필요한 만큼 연결하여 사용하면 됩니다.
논리 연산 기호 or 기호는 ||를 통해 두 가지 조건을 연결하여 확인할 수 있습니다. 디지털 논리 조건 OR는 입력되는 두 개의 조건 중 하나만 참(true)인 경우 결과도 참(true)을 출력합니다.
즉, 두 개의 값을 덧셈 형태로 연결하는 것과 같습니다. 두 개 조건 중 하나만 참(true)을 확인할 때 사용할 수 있습니다.
조건 연산 결합은 다음과 같은 문법으로 작성할 수 있습니다. |
|문법|
if (조건A || 조건 B) {
참 동작 실행 코드;
} else {
거짓일 때 동작 처리 ;
}
예제 파일 if-08.php
<?php
$age = 17;
if ($age >= 18 || $age <= 65) {
echo "18세 이상, 65세 이하의 경제 가능 나이 층입니다.";
}
?>
결과
18세 이상, 65세 이하의 경제 가능 나이 층입니다.
위 예제는 이중 조건 처리를 하지 않고 두 가지 조건을 동시에 검사하여 나이의 범위를 정해 참과 거짓을 한 번에 구별할 수 있습니다. | 조건의 입력은 A, B 두 개 값보다 더 많이 연결하여 다음과 같이 작성할 수 도 있습니다. |
if(조건A || 조건B || 조건C || 조건D …)
필요한 만큼 연결하여 사용을 하면 됩니다.
조건 제어문의 문법 if는 조건이 참(true)이면 다음 실행문을 동작하고, 거짓이면 else 이후의 실행문이 동작합니다. 하지만, 논리표현 NOT의 ! 기호를 사용하여 조건 부정문을 통해 조건 결과의 참과 거짓을 뒤집어서 반대로 동작을 하게 만들 수 있습니다.
작성 문법
if ( !조건) {
거짓일 때 동작 처리;
} else {
참 동작 실행 코드;
}
예제 파일 if-09.php
<?php
// $adult 미선언되어 있습니다.
// NELL => false 값
if (!$adult) {
// true 조건
// false 조건이 부정으로 true로 변경됨
echo "성년 판별 논리 값이 비어 있습니다.<br>";
$age = 18;
if($age >= 18){
echo "성인입니다. <br>";
} else {
echo "미성년입니다. <br>";
}
} else {
// false 조건
echo "성년 조건을 판별합니다. <br>";
$adult = false;
if($adult){
echo "성인입니다. <br>";
} else {
echo "미성년입니다. <br>";
}
}
?>
결과
성년 판별 논리 값이 비어 있습니다.
성인입니다.
즉, 논리표현 NOT은 참과 거짓을 바꾸는 의미를 가지고 있습니다.
앞의 세 개의 논리표현 결합은 하나의 기호만 가지고 조건을 결합했습니다.
하지만 조건 결합은 서로 다른 논리 조건 &&
와 ||
, !
를 소괄호()
를 통해 각각의 다른 논리 값을 결합할 수 있습니다.
(조건 A && 조건B) || 조건 C
위의 예는 조건 C가 참(true)이거나, 조건 A나 조건 B 모두 참(true)이어야 결과를 참(true)으로 출력합니다.
만일 서로 다른 논리표현으로 다수의 조건을 결합할 때는 이렇게 산술 연산 우선순위 기호로 사용하는 소괄호를 통해 ()
를 결합이나 우선순위를 정할 수 있습니다.