Jump to content
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>

Share this post


Link to post
Share on other 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.

  • +1 1

Share this post


Link to post
Share on other 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!!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.