Ir para conteúdo

POWERED BY:

Arquivado

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

Heung

[Resolvido] explicar essa expressão?

Recommended Posts

$ast = 1;

 

 

for ($i=1; $i<=3; $i++)

{

 

 

for ( $c=1; $c<=$ast; ++$c)

 

{

 

print "*";

 

 

}

 

print "<br>";

 

$ast+=2;

 

}

 

print "$ast <> $i <> $c";

Alguem poderia me explicar essa expressão?

ela forma algo semelhante

 

*

***

****

 

mais não consegui entender a logica alguem poderia me explicar

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
$ast = 1; //variavel $ast = 1
for ($i=1; $i<=3; $i++) { //cria um looping que dará 3 voltas
for ( $c=1; $c<=$ast; ++$c) {// cria outro looping.. esse vai parar quando $c (1) for menor/igual à $ast
	print '*'; //imprime um asterisco em cada volta do segundo looping
}
print '<br />'; //cada volta do primeiro loop imprimirá uma quebra de linha
$ast+=2; //no final do primeiro looping, soma-se 2 à variável $ast.. começou com 1, fica 3, depois 5
}
print "$ast <> $i <> $c";//imprime valores das variáveis do sistema. No final $ast terá 7, $i terá 4 e $c terá 6

 

Resultado (não alterei o código, somente o comentei):

*

***

*****

7 <> 4 <> 6

 

Explicando para humanos:

 

looping de 3 voltas (vamos chamar de looping raiz) {
   looping de voltas variáveis (depende do valor de $ast, que aumenta 2 a cada volta do looping-raíz) {
       ASTERISCO
   }
   QUEBRA DE LINHA
}
ECHO COM VARIAVEIS

 

Fiz meu melhor para deixar o mais simples possível.

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

FOR:

for ($i=1; $i<=3; $i++){

}

 

$i = 1 (isso significa que a váriavel $i receberá 1)

$i <= 3 (verifica se a váriavel $i é menor ou igual a 3. Se $i não for < (menor) ou =(igual) a 3 ele continua no bloco que está entre as {} mas se for igual ou menor ele sai do laço)

$i++ (ele vai incrementar o laço a para "rodada", se ele estiver no bloco ele vai incrementando, o que era $i = 1 vai ficar $i = 2 até a condição $i <= 3 seja verdadeira)

 

No segundo for ele também usa a mesma lógica.

Compartilhar este post


Link para o post
Compartilhar em outros sites

certo Obrigado pelas Explicação mais por que no final o $i acaba valendo 4 ? sendo que o loop seria <=3?

não entendi isso! =/

Compartilhar este post


Link para o post
Compartilhar em outros sites

ao final do loop (for) o contador precisa verificar o novo valor da soma, ou seja, o $i é incrementado para ser comparado até o resultado da comparação seja um valor false ($i<=3), ate prq se isto não acontecer o loop será infinito.

Veja:

for($i = 0; $i<=5; $i++){
   echo $i."<br />";
}

 

$i precisa ser igual a 6 para ser menor ou igual a 5 e sair do laço.

 

teste desta forma:

 

for($i = 0; $i <= 5; $i--){
   echo $i."<br />";
}

 

neste caso entrará em loop infinito, pois $i sempre será menor que 5.

 

Espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

então isso so enquadra a só "for"? que apos o ultimo laço ele incrementa e verifica <= ? e isso?

eu pensei por ser = ja sairia do loop

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, isso pode acontecer em qualquer tipo de laço. Entenda o seguinte:

 

Na segunda volta, no final do laço, o $i ficará com 3, e dará outra volta. O operador de igualdade <= (menor/igual) vai permitir que ele passe, pois é IGUAL a 3, e ele vai executar de novo, ACRESCENTANDO À SEU VALOR, 1, E FICANDO COM 4. Ele, com $i=4, vai tentar passar pelo loop novamente, e não vai conseguir, continuando a execução do script...

Não precisa ser FOR pra isso acontecer. É puramente uma questão de lógica e organização.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, isso pode acontecer em qualquer tipo de laço. Entenda o seguinte:

 

Na segunda volta, no final do laço, o $i ficará com 3, e dará outra volta. O operador de igualdade <= (menor/igual) vai permitir que ele passe, pois é IGUAL a 3, e ele vai executar de novo, ACRESCENTANDO À SEU VALOR, 1, E FICANDO COM 4.

Não precisa ser FOR pra isso acontecer. É puramente uma questão de lógica e organização.

 

[]'s

Eita Agora compriendi verdd tinha um "=" rsrs verdd se tive só o < ele iria parar quando chegase a 4 certo? agora entendi

^^ Obrigado pela Ajuda de todos!

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.