Menu
Coddy logo textTech

Logical Operators Part 2

Parte da seção Fundamentos do Journey de PHP da Coddy — lição 26 de 71.

O operador NOT (!) inverte um valor booleano para o seu oposto. Se algo é true, torna-se false, e vice-versa:

<?php
$isLoggedIn = false;

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

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

Você pode combinar múltiplos operadores lógicos em uma única expressão. Quando fizer isso, use parênteses para tornar suas intenções claras:

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

// Pode entrar se: tem ingresso E (é adulto OU é VIP)
$canEnter = $hasTicket && ($age >= 18 || $isVIP);
var_dump($canEnter); // bool(true)
?>

Sem parênteses, && é avaliado antes de ||. No entanto, usar parênteses torna seu código mais fácil de ler e previne erros. Ao combinar operadores, sempre agrupe as condições logicamente para expressar exatamente o que você quer dizer.

challenge icon

Desafio

Fácil

Leia quatro valores da entrada: um inteiro temperature, uma string isRaining (seja "true" ou "false"), uma string hasUmbrella (seja "true" ou "false"), e uma string hasRaincoat (seja "true" ou "false").

Converta os valores de string para booleanos comparando-os com "true".

Avalie as seguintes três condições e imprima o resultado de cada uma usando var_dump(), cada uma em uma nova linha:

  1. Verifique se NÃO está chovendo (use o operador !)
  2. Verifique se a pessoa deve ficar dentro de casa: está chovendo E eles não têm nem guarda-chuva nem capa de chuva (use ! com ambos os itens)
  3. Verifique se a pessoa pode sair confortavelmente: a temperatura é pelo menos 15 E (não está chovendo OU eles têm guarda-chuva ou capa de chuva)

Exemplo:

Se as entradas forem 20, true, false, e true, a saída deve ser:

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

Explicação:

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

Folha de consulta

O operador NOT (!) inverte um valor booleano para o oposto:

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

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

Você pode combinar múltiplos operadores lógicos em uma única expressão. Use parênteses para tornar suas intenções claras:

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

// Pode entrar se: tem ingresso E (é adulto OU é VIP)
$canEnter = $hasTicket && ($age >= 18 || $isVIP);
var_dump($canEnter); // bool(true)
?>

Sem parênteses, && é avaliado antes de ||. No entanto, usar parênteses torna seu código mais fácil de ler e previne erros.

Experimente você mesmo

<?php
// Ler valores de entrada
$temperature = intval(fgets(STDIN));
$isRainingStr = trim(fgets(STDIN));
$hasUmbrellaStr = trim(fgets(STDIN));
$hasRaincoatStr = trim(fgets(STDIN));

// TODO: Converter valores de string para booleanos comparando-os com "true"


// TODO: Avaliar e imprimir as três condições usando var_dump():
// 1. Verificar se NÃO está chovendo
// 2. Verificar se a pessoa deve ficar dentro de casa (chovendo E sem guarda-chuva E sem capa de chuva)
// 3. Verificar se a pessoa pode sair confortavelmente

?>
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos