Menu
Coddy logo textTech

Logical Operators Part 2

Coddy PHP 여정의 기초 섹션에 포함된 레슨 — 71개 중 26번째.

NOT 연산자 (!)는 불리언 값을 반대로 뒤집습니다. 무언가가 true이면 false가 되고, 그 반대도 마찬가지입니다:

<?php
$isLoggedIn = false;

$showLoginButton = !$isLoggedIn;
var_dump($showLoginButton); // bool(true)

$isLoggedIn = true;
$showLoginButton = !$isLoggedIn;
var_dump($showLoginButton); // bool(false)
?>

단일 표현식에서 여러 논리 연산자를 결합할 수 있습니다. 그렇게 할 때, 의도를 명확하게 하기 위해 괄호를 사용하세요:

<?php
$age = 25;
$hasTicket = true;
$isVIP = false;

// Can enter if: has ticket AND (is adult OR is VIP)
$canEnter = $hasTicket && ($age >= 18 || $isVIP);
var_dump($canEnter); // bool(true)
?>

괄호 없이 &&||보다 먼저 평가됩니다. 그러나 괄호를 사용하면 코드가 더 읽기 쉽고 실수를 방지합니다. 연산자를 결합할 때, 항상 조건을 논리적으로 그룹화하여 정확히 의도한 바를 표현하세요.

challenge icon

챌린지

쉬움

입력에서 네 개의 값을 읽으세요: 정수 temperature, 문자열 isRaining (either "true" or "false"), 문자열 hasUmbrella (either "true" or "false"), 그리고 문자열 hasRaincoat (either "true" or "false").

문자열 값을 "true"와 비교하여 불리언으로 변환하세요.

다음 세 가지 조건을 평가하고 각 결과를 var_dump()를 사용하여 새 줄에 하나씩 출력하세요:

  1. 비가 오지 않는지 확인하세요 ( ! 연산자 사용)
  2. 사람이 실내에 있어야 하는지 확인: 비가 오고 그리고 우산도 비옷도 없는 경우 (두 항목 모두에 ! 사용)
  3. 사람이 편안하게 밖으로 나갈 수 있는지 확인: 온도가 15 이상 이고 (비가 오지 않거나 또는 우산이나 비옷이 있는 경우)

예시:

입력값이 20, true, false, 그리고 true인 경우, 출력은 다음과 같아야 합니다:

bool(false)
bool(false)
bool(true)

설명:

  • !isRaining → !true → false
  • isRaining && !hasUmbrella && !hasRaincoat → true && true && false → false
  • temperature >= 15 && (!isRaining || hasUmbrella || hasRaincoat) → true && (false || false || true) → true && true → true

치트 시트

NOT 연산자(!)는 불리언 값을 그 반대로 뒤집습니다:

<?php
$isLoggedIn = false;
$showLoginButton = !$isLoggedIn;
var_dump($showLoginButton); // bool(true)

$isLoggedIn = true;
$showLoginButton = !$isLoggedIn;
var_dump($showLoginButton); // bool(false)
?>

여러 논리 연산자를 하나의 표현식에 결합할 수 있습니다. 의도를 명확히 하기 위해 괄호를 사용하세요:

<?php
$age = 25;
$hasTicket = true;
$isVIP = false;

// 티켓이 있고 (성인 이거나 VIP인 경우) 들어갈 수 있음
$canEnter = $hasTicket && ($age >= 18 || $isVIP);
var_dump($canEnter); // bool(true)
?>

괄호 없이 &&||보다 먼저 평가됩니다. 그러나 괄호를 사용하면 코드가 더 읽기 쉽고 실수를 방지합니다.

직접 해보기

<?php
// 입력 값 읽기
$temperature = intval(fgets(STDIN));
$isRainingStr = trim(fgets(STDIN));
$hasUmbrellaStr = trim(fgets(STDIN));
$hasRaincoatStr = trim(fgets(STDIN));

// TODO: "true"와 비교하여 문자열 값을 불리언으로 변환하세요


// TODO: var_dump()를 사용하여 세 가지 조건을 평가하고 출력하세요:
// 1. 비가 오지 않는지 확인
// 2. 사람이 실내에 있어야 하는지 확인 (비가 오고 우산이 없고 레인코트가 없을 때)
// 3. 사람이 편안하게 밖으로 나갈 수 있는지 확인

?>
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨