Ir para conteúdo

Arquivado

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

HerrBachur

Condição do IF

Recommended Posts

Senhores,

 

Bom dia, desde de ja agradeço a atenção e peço desculpas por quaisquer transtornos, sou novo em PHP estou estudando pelo codecademy e me deparei com um exercício que me deixou um pouco confuso na parte das condições, segue a parte do código

 

$flip = rand(0,1);

$flipCount ++;

if ($flip){

echo "<div class=\"coin\">T</div>";

}

else {

echo "<div class=\"coin\">H</div>";

}

} while ($flip);

 

eu não to conseguindo entender que condição o PHP faz o desvio no caso do IF e qual condição faz com que o looping para de funcionar, pois ele não faz nenhuma comparação.

 

por ser gerado de forma randômica o $flip só recebe 0 ou 1 então como ele consegue entender qual o valor desejado?

 

código completo para verificação

 

 

<!DOCTYPE html>

<html>

<head>

<link type='text/css' rel='stylesheet' href='style.css'/>

<title>Vamos Jogar Mais Moedas!</title>

</head>

<body>

<p>Vamos jogar uma moeda até que o resultado seja cara!</p>

<?php

$flipCount = 0;

do {

$flip = rand(0,1);

$flipCount ++;

if ($flip){

echo "<div class=\"coin\">T</div>";

}

else {

echo "<div class=\"coin\">H</div>";

}

} while ($flip);

$verb = "foram";

$last = "lançamentos";

if ($flipCount == 1) {

$verb = "foi";

$last = "lançamento";

}

echo "<p>Para obtermos cara, {$verb} {$flipCount} {$last}!</p>";

?>

</body>

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso ocorre pois o PHP possui a inferência de tipo, ou seja, ele vai retornar na condicional no caso das seguintes ocorrências (TRUE,FALSE,0,1), sendo respectivamente 0 = FALSE e 1 = TRUE. O que faz o loop parar de funcionar é que você chama a função RAND, e insere os valores 0 e 1, ou seja, durante o LOOP ele vai gerar 0 ou 1, e como na estrutura do while existe uma verificação que funciona da mesma maneira que o IF, o LOOP vai parar quando o RAND ou seja, a variável flip possuir o valor de 0.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso ocorre pois o PHP possui a inferência de tipo, ou seja, ele vai retornar na condicional no caso das seguintes ocorrências (TRUE,FALSE,0,1), sendo respectivamente 0 = FALSE e 1 = TRUE. O que faz o loop parar de funcionar é que você chama a função RAND, e insere os valores 0 e 1, ou seja, durante o LOOP ele vai gerar 0 ou 1, e como na estrutura do while existe uma verificação que funciona da mesma maneira que o IF, o LOOP vai parar quando o RAND ou seja, a variável flip possuir o valor de 0.

 

Obrigado pela resposta amigo!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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