Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

totis

Duvida Super Iniciante (SWITCH)

Recommended Posts

Olá amigos, preciso de uma ajuda, sou iniciante em programação e php, bem iniciante mesmo.

 

Estou fazendo um exercício de switch estou com uma duvida que não consigo resolver.

 

Então, a duvida é a seguinte, eu posso colocar qualquer numero em $anoNasc que o código está rodando certinho,

porém quando eu coloco um número igual ao $anoAtual não está dando certo...

nesse caso a $idade daria "0", porém o resultado não está sendo "Você é uma criança" e sim está sendo "Você é um adolescente".

 

Onde estou errando?

 

        <?php
            $anoNasc = 2020;
            $anoAtual = 2020;
            $idade = ($anoAtual - $anoNasc);
                       
            switch($idade):
                case ($idade >= 0) and ($idade < 14):
                    echo "Você é uma criança";     
                    break;
                case ($idade >= 14) and ($idade < 18):
                    echo "Você é um adolescente";                    
                    break;
                case ($idade >= 18) and ($idade < 60):
                    echo "Você é adulto";
                    break;
                case $idade >= 60:
                    echo "Você é idoso";
                    break;
                default:
                    echo "Você não nasceu";
            endswitch;
        ?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salve, na verdade eu creio que seja um erro de lógica , tenta a versão que corrigi e ve se da o resultado esperado ... 

			$anoNasc = 2050;
            $anoAtual = 2050;
            $idade = ($anoAtual - $anoNasc);
                       
            switch($idade):
                case ($idade >= 1) and ($idade < 14):
                    echo "Você é uma criança";     
                    break;
                case ($idade >= 14) and ($idade < 18):
                    echo "Você é um adolescente";                    
                    break;
                case ($idade >= 18) and ($idade < 60):
                    echo "Você é adulto";
                    break;
                case $idade >= 60:
                    echo "Você é idoso";
                    break;
                default:
                    echo "Você não nasceu";
            endswitch;

O problema é o Primeiro case que você gerou uma comparação de > ou = a 0 e isso gerou um conflito com o Default e adolescente , se tornar essa condição só > 0 ou melhor , >= 1 ele se torna correto , tentei todas idade aqui e agora deu certo.. verificar se é isso mesmo qualquer coisa só falar ..

 

Abraços, tudo de bom =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde!
É importante entender como o php converte para booleanos, para evitar pegadinhas

var_dump(0 == true); // false
var_dump(1 == true); // true
var_dump(1 === true); // false
var_dump(-1 == true); // true

 

Não deixe de ver: http://us2.php.net/manual/en/language.types.boolean.php
 

No caso do switch, ele faz comparação fraca (==)


Sendo o valor de idade, zero:

($idade >= 0) and ($idade < 14) # isso retornara um true, e zero com true é igual a false. 
# Reiterando: 
var_dump(0 == true); # retornara um false 

Veja mais em:
Http://www.php.net/manual/en/types.comparisons.php#types.comparisions-loose
 

Por esse motivo que não entrava na primeira condição.

@Webr, mudar: 
case ($idade >= 0) and ($idade < 14):
para
case ($idade >= 1) and ($idade < 14):
Apesar de fazer cair na primeira condição, esta errado, pelo simples fato de zero ser menor do que 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por leonardorafaeldev
      Boa noite pessoal estou com um problema que o icone do meu site não aparece no mobile segue uma foto do problema o meu codigo esta assim
       
      <!-- icones -->   <link href="icones/favicon.ico" rel="icon">   <link href="icones/favicon.ico" rel="shortcut icon">    <link rel="apple-touch-icon" sizes="57x57" href="icones/apple-icon-57x57.png">   <link rel="apple-touch-icon" sizes="60x60" href="icones/apple-icon-60x60.png">   <link rel="apple-touch-icon" sizes="72x72" href="icones/apple-icon-72x72.png">   <link rel="apple-touch-icon" sizes="76x76" href="icones/apple-icon-76x76.png">   <link rel="apple-touch-icon" sizes="114x114" href="icones/apple-icon-114x114.png">   <link rel="apple-touch-icon" sizes="120x120" href="icones/apple-icon-120x120.png">   <link rel="apple-touch-icon" sizes="144x144" href="icones/apple-icon-144x144.png">   <link rel="apple-touch-icon" sizes="152x152" href="icones/apple-icon-152x152.png">   <link rel="apple-touch-icon" sizes="180x180" href="icones/apple-icon-180x180.png">   <link rel="icon" type="image/png" sizes="192x192"  href="icones/android-icon-192x192.png" >   <link rel="icon" type="image/png" sizes="36x36" href="icones/android-icon-36x36.png">   <link rel="icon" type="image/png" sizes="48x48" href="icones/android-icon-48x48.png">   <link rel="icon" type="image/png" sizes="96x96" href="icones/android-icon-96x96.png">   <link rel="icon" type="image/png" sizes="144x144" href="icones/android-icon-144x144.png">   <link rel="icon" type="image/png" sizes="72x72" href="icones/android-icon-72x72.png">   <link rel="icon" type="image/png" sizes="32x32" href="icones/favicon-32x32.png">   <link rel="icon" type="image/png" sizes="96x96" href="icones/favicon-96x96.png">   <link rel="icon" type="image/png" sizes="16x16" href="icones/favicon-16x16.png">   <link rel="manifest" href="icones/manifest.json">   <meta name="msapplication-TileColor" content="#ffffff">   <meta name="msapplication-TileImage" content="icones/ms-icon-144x144.png">   <meta name="theme-color" content="#ffffff">   <meta charset="utf-8">   <meta content="width=device-width, initial-scale=1.0" name="viewport">
    • Por Onaita
      Boa noite, preciso de uma ajuda com o código abaixo:
      - Dentro da variável '$dados' tenho uma array em que o id repete com datas diferentes, preciso descartar uma das duas arrays repetidas com o mesmo 'id', mantendo a de menor data, ou seja, o resultado final seria:
      "Array ( [0] => Array ( [id] => 12 [data] => 2020-07-02 ) , [1] => Array ( [id] => 13 [data] => 2020-06-10 ) ) "
      - já tentei de tudo um pouco a princípio estou trabalhando com a ideia de loop dentro de loop, para varrer e comparar, mas como vcs podem ver estou deixando passar alguma coisa;
      <?php
      $dados =     [array("id" =>12, "data"=>"2020-07-02"),
                  array("id" =>13, "data"=>"2020-06-10"),
                  array("id" =>13, "data"=>"2020-06-15"),
                  array("id" =>12, "data"=>"2020-05-12")];
      $total = count($dados);
      foreach($dados as $item){
          for($i=1; $i < $total; $i++){
              if($item['id'] == $dados[$i]['id']){
                  if(strtotime($item['data']) <= strtotime($dados[$i]['data'])){
                      unset($dados[$i]);
                      $dados = array_values($dados);
                      $total = count($dados);
                      
                  }    
              }    
          }    
      }
      print_r($dados);
      Array ( [0] => Array ( [id] => 12 [data] => 2020-07-02 ) ) //resultado
       
      Se alguém achar o erro, ou uma forma de resolver esse problema ficarei muito agradecido!
      Obrigado e Um grande abrs a todos!
    • Por Licht
      Quero um programa que leia vários numeros e informa quantos pares foram digitados. Quando o número 0 (zero) for digitado ele para a execucao. O programa entra num loop e nao funciona como gostaria <?php             $cont= 0;             do {                 echo "<form method='GET' action='exemplo.php'><br/>";                 echo "<h1>Quantidade de numeros pares</h1><br/>";                 echo "<label for='num'>Numero: </label><br/>";                 echo "<input type='number' name='num'/><br/><br/>";                 echo "<input type='submit' value='Verificar'>";                 echo "</form>";                 echo "Contador: $cont";                 $num_verificar = isset($_GET["num"]) ? $_GET["num"] : ' ';                 if($num_verificar%2 == 0)                     $cont ++;             } while ($num_verificar != 0);             echo "Quantidade de numeros pares eh $cont! <br/>"; ?>             
    • Por G_Celebrini
      Eu tô no primeiro ano de faculdade e tenho que criar um jogo da velha com as seguintes regras: Desenvolver o Jogo da Velha utilizando matrizes. O jogo deve ser preparado para a interação entre dois usuários. Os usuários deverão escolher os símbolos que utilizarão no jogo. Cada partida deverá ser composta de três rodadas. O resultado final deve considerar que ganhou duas ou três partidas como vencedor. Havendo um empate e uma vitória para cada lado, o sistema deverá propor uma partida final. Caso os usuário declinem desta partida deverá ser considerado empate técnico. Deve haver rotina específica para que os usuários optem pelo abandono do jogo dando, nesse caso, a vitória da rodada ao adversário.
      Eu ainda sou bem iniciante em programação e tenho esse código até agora:
       
      <!DOCTYPE html>
      <html>
      <head>
          <meta charset="UTF-8"/>
          <title> Bagulho é doido memo </title>
          <style type="text/css">
      #text {
         
         font-size: 45px;
      }
      </style>
      </head>
      <body>
          <input type=submit value="1"
          onclick = "location.href = 'testes.php?id=1'">
          <input type=submit value="2"
          onclick = "location.href = 'testes.php?ad=1'">
          <input type=submit value="3"
          onclick = "location.href = 'testes.php?bd=1'">
          <input type=submit value="4"
          onclick = "location.href = 'testes.php?cd=1'">
          <input type=submit value="5"
          onclick = "location.href = 'testes.php?dd=1'">
          <input type=submit value="6"
          onclick = "location.href = 'testes.php?ed=1'">
          <input type=submit value="7"
          onclick = "location.href = 'testes.php?fd=1'">
          <input type=submit value="8"
          onclick = "location.href = 'testes.php?gd=1'">
          <input type=submit value="9"
          onclick = "location.href = 'testes.php?hd=1'">
          <input type=submit value="10"
          onclick = "location.href = 'testes.php?jd=1'">
          <input type=submit value="20"
          onclick = "location.href = 'testes.php?kd=1'">
          <input type=submit value="30"
          onclick = "location.href = 'testes.php?ld=1'">
          <input type=submit value="40"
          onclick = "location.href = 'testes.php?md=1'">
          <input type=submit value="50"
          onclick = "location.href = 'testes.php?nd=1'">
          <input type=submit value="60"
          onclick = "location.href = 'testes.php?od=1'">
          <input type=submit value="70"
          onclick = "location.href = 'testes.php?pd=1'">
          <input type=submit value="80"
          onclick = "location.href = 'testes.php?qd=1'">
          <input type=submit value="90"
          onclick = "location.href = 'testes.php?rd=1'">
          <h1></h1>
          <?php

      //----------------------------------------------------------------------------------------------------------------------------------------//
      //início do código php, que começa com a declaração do array multidimensional que vai ser o jogo da velha
      //----------------------------------------------------------------------------------------------------------------------------------------//

          $hash_game = array(
           array("barra1" => "|","espaço1" => "---","barra2" => "|","espaço2" => "---","barra3" => "|","espaço3" => "---","barra" => "|"),
           array("barra4" => "|","espaço4" => "---","barra5" => "|","espaço5" => "---","barra6" => "|","espaço6" => "---","barra_" => "|"),
           array("barra7" => "|","espaço7" => "---","barra8" => "|","espaço8" => "---","barra9" => "|","espaço9" => "---","barra__" => "|")
          );
          $vitoria_x = 0;
          $vitoria_o = 0;
      //----------------------------------------------------------------------------------------------------------------------------------------//
      //procedimento responsável por exibir o array
      //----------------------------------------------------------------------------------------------------------------------------------------//

          function exibir_jogo ($hash_game) {
              echo $hash_game[0]['barra1'];
              echo $hash_game[0]['espaço1'];
              echo $hash_game[0]['barra2'];
              echo $hash_game[0]['espaço2'];
              echo $hash_game[0]['barra3'];
              echo $hash_game[0]['espaço3'];
              echo $hash_game[0]['barra'];
              echo "<br/>";
              echo $hash_game[1]['barra4'];
              echo $hash_game[1]['espaço4'];
              echo $hash_game[1]['barra5'];
              echo $hash_game[1]['espaço5'];
              echo $hash_game[1]['barra6'];
              echo $hash_game[1]['espaço6'];
              echo $hash_game[1]['barra_'];
              echo "<br/>";

              echo $hash_game[2]['barra7'];
              echo $hash_game[2]['espaço7'];
              echo $hash_game[2]['barra8'];
              echo $hash_game[2]['espaço8'];
              echo $hash_game[2]['barra9'];
              echo $hash_game[2]['espaço9'];
              echo $hash_game[2]['barra__'];
          }
          exibir_jogo ($hash_game);
          
          echo "<br/>";
          echo "<br/>";
          echo "<br/>";
      //----------------------------------------------------------------------------------------------------------------------------------------//
      //condicionais para fazerem os botões exibirem "x" ou "o"
      //----------------------------------------------------------------------------------------------------------------------------------------//

          if(isset($_GET['id']) == 1){
       $hash_game[0]['espaço1'] = "-x-";
       echo "<br/>";    
       exibir_jogo ($hash_game);
      }
          if(isset($_GET['ad']) == 1){
       $hash_game[0]['espaço2'] = "-x-";
       echo "<br/>";        
       exibir_jogo ($hash_game);
      }
          if(isset($_GET['bd']) == 1){
       $hash_game[0]['espaço3'] = "-x-";
       echo "<br/>";        
       exibir_jogo ($hash_game);
      }
          if(isset($_GET['cd']) == 1){
       $hash_game[1]['espaço4'] = "-x-";
       echo "<br/>";        
       exibir_jogo ($hash_game);
      }
          if(isset($_GET['dd']) == 1){
       $hash_game[1]['espaço5'] = "-x-";
       echo "<br/>";        
       exibir_jogo ($hash_game);
      }
          if(isset($_GET['ed']) == 1){
       $hash_game[1]['espaço6'] = "-x-";
       echo "<br/>";        
       exibir_jogo ($hash_game);
      }
          if(isset($_GET['fd']) == 1){
       $hash_game[2]['espaço7'] = "-x-";
       echo "<br/>";        
       exibir_jogo ($hash_game);
      }
          if(isset($_GET['gd']) == 1){
       $hash_game[2]['espaço8'] = "-x-";
       echo "<br/>";        
       exibir_jogo ($hash_game);
      }
          if(isset($_GET['hd']) == 1){
       $hash_game[2]['espaço9'] = "-x-";
       echo "<br/>";        
       exibir_jogo ($hash_game);
      }
      if(isset($_GET['jd']) == 1){
       $hash_game[0]['espaço1'] = "-o-";
       echo "<br/>";    
       exibir_jogo ($hash_game);
      }
          if(isset($_GET['kd']) == 1){
       $hash_game[0]['espaço2'] = "-o-";
       echo "<br/>";        
       exibir_jogo ($hash_game);
      }
          if(isset($_GET['ld']) == 1){
       $hash_game[0]['espaço3'] = "-o-";
       echo "<br/>";        
       exibir_jogo ($hash_game);
      }
          if(isset($_GET['md']) == 1){
       $hash_game[1]['espaço4'] = "-o-";
       echo "<br/>";        
       exibir_jogo ($hash_game);
      }
          if(isset($_GET['nd']) == 1){
       $hash_game[1]['espaço5'] = "-o-";
       echo "<br/>";        
       exibir_jogo ($hash_game);
      }
          if(isset($_GET['od']) == 1){
       $hash_game[1]['espaço6'] = "-x-";
       echo "<br/>";        
       exibir_jogo ($hash_game);
      }
          if(isset($_GET['pd']) == 1){
       $hash_game[2]['espaço7'] = "-x-";
       echo "<br/>";        
       exibir_jogo ($hash_game);
      }
          if(isset($_GET['qd']) == 1){
       $hash_game[2]['espaço8'] = "-x-";
       echo "<br/>";        
       exibir_jogo ($hash_game);
      }
          if(isset($_GET['rd']) == 1){
       $hash_game[2]['espaço9'] = "-x-";
       echo "<br/>";        
       exibir_jogo ($hash_game);
      }
      //----------------------------------------------------------------------------------------------------------------------------------------//
      //condicionais que determinam a vitória de x
      //----------------------------------------------------------------------------------------------------------------------------------------//
      if (($hash_game[0]['espaço1'] == "-x-" && $hash_game[1]['espaço5'] == "-x-" && $hash_game[2]['espaço9'] == "-x-") || ($hash_game[0]['espaço3'] == "-x-" && $hash_game[1]['espaço5'] == "-x-" && $hash_game[2]['espaço7'] == "-x-") || ($hash_game[0]['espaço1'] == "-x-" && $hash_game[0]['espaço2'] == "-x-" && $hash_game[0]['espaço3'] == "-x-") || ($hash_game[1]['espaço4'] == "-x-" && $hash_game[1]['espaço5'] == "-x-" && $hash_game[1]['espaço6'] == "-x-") || ($hash_game[2]['espaço7'] == "-x-" && $hash_game[2]['espaço8'] == "-x-" && $hash_game[2]['espaço9'] == "-x-") || ($hash_game[0]['espaço1'] == "-x-" && $hash_game[1]['espaço4'] == "-x-" && $hash_game[2]['espaço7'] == "-x-") || ($hash_game[0]['espaço2'] == "-x-" && $hash_game[1]['espaço5'] == "-x-" && $hash_game[2]['espaço8'] == "-x-") || ($hash_game[0]['espaço3'] == "-x-" && $hash_game[1]['espaço6'] == "-x-" && $hash_game[2]['espaço9'] == "-x-")){
          $vitoria_x = $vitoria_x + 1;
      }
      //----------------------------------------------------------------------------------------------------------------------------------------//
      //condicionais que determinam a vitória de o
      //----------------------------------------------------------------------------------------------------------------------------------------//

      if (($hash_game[0]['espaço1'] == "-o-" && $hash_game[1]['espaço5'] == "-o-" && $hash_game[2]['espaço9'] == "-o-") || ($hash_game[0]['espaço3'] == "-o-" && $hash_game[1]['espaço5'] == "-o-" && $hash_game[2]['espaço7'] == "-o-") || ($hash_game[0]['espaço1'] == "-o-" && $hash_game[0]['espaço2'] == "-o-" && $hash_game[0]['espaço3'] == "-o-") || ($hash_game[1]['espaço4'] == "-o-" && $hash_game[1]['espaço5'] == "-o-" && $hash_game[1]['espaço6'] == "-o-") || ($hash_game[2]['espaço7'] == "-o-" && $hash_game[2]['espaço8'] == "-o-" && $hash_game[2]['espaço9'] == "-o-") || ($hash_game[0]['espaço1'] == "-o-" && $hash_game[1]['espaço4'] == "-o-" && $hash_game[2]['espaço7'] == "-o-") || ($hash_game[0]['espaço2'] == "-o-" && $hash_game[1]['espaço5'] == "-o-" && $hash_game[2]['espaço8'] == "-o-") || ($hash_game[0]['espaço3'] == "-o-" && $hash_game[1]['espaço6'] == "-o-" && $hash_game[2]['espaço9'] == "-o-")){
          $vitoria_o = $vitoria_o + 1;
      }
      //----------------------------------------------------------------------------------------------------------------------------------------//
      //----------------------------------------------------------------------------------------------------------------------------------------//

      echo "<br/>";
          ?>
      </body>
      </html>
       
       
      Eu criei a matriz e tentei usar botôes pra chamar funções dando "ids" para eles, mas toda fez que eu aperto um botão a página recarrega, perdendo todas as informações colocadas antes, esse é o meu principal problema agora. Se alguém puder me ajudar...
    • Por Th14g0
      Novato em php, está dando erro ao enviar e-mail
       
      Código do form:
      <form action="contato.php" method="post" id="orcamento">
                              <div class="input-field">
                                  <input type="text" name="name" id="name" required="true">
                                  <label for="name">Nome</label>
                              </div>
                              <div class="input-field">
                                  <input type="email" name="email" id="email" required="true">
                                  <label for="email">E-mail</label>
                              </div>
                              <div class="input-field">
                                  <input type="text" name="assunto" id="assunto" required="true">
                                  <label for="assunto">Assunto</label>
                              </div>
                              <select class="browser-default" name="service" id="service" required="true">
                                  <option value="" disabled selected>Selecione o serviço:</option>
                                  <option value="1">Industrial e Comercial</option>
                                  <option value="2">Imóveis</option>
                                  <option value="3">Jurídico</option>
                                  <option value="" disabled="">Outros</option>
                                  <option value="4">Sugestões</option>
                                  <option value="5">Dúvidas</option>
                                </select>
                              <div class="input-field">
                                  <textarea id="message" name="message" class="materialize-textarea"></textarea>
                                  <label for="message">Mensagem</label>
                              </div>
                              <button class="btn color-y" type="submit">Enviar</button>
       
      php
       
      <?php
      // Recebendo dados do formulário
      $name = $_POST['name'];
      $email = $_POST['email'];
      $assunto = $_POST['assunto'];
      $service = $_POST["service"];
      $message = $_POST['message'];

      $headers = "Content-Type: text/html; charset=utf-8\r\n";
      $headers .= "From: $email\r\n";
      $headers .= "Reply-To: $email\r\n";
      // Dados que serão enviados
      $corpo = "Formulário da página de contato <br>";
      $corpo .= "Nome: " . $name . " <br>";
      $corpo .= "Email: " . $email . " <br>";
      $corpo .= "Assunto: " . $assunto . " <br>";
      $corpo .= "Serviço: " . $service . " <br>";
      $corpo .= "Mensagem: " . $message . " <br>";
      // Email que receberá a mensagem (Não se esqueça de substituir)
      $email_to = 'contato@saudetotalvendasonline.com.br';
      // Enviando email
      $status = mail($email_to, mb_encode_mimeheader($service, "utf-8"), $corpo, $headers);
      if ($status):
        // Enviada com sucesso
        header('location:index.php?status=sucesso');
      else:
        // Se der erro
        header('location:index.php?status=erro');
      endif;
      ?>
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.