SóProvas


ID
3878305
Banca
AOCP
Órgão
COREN-SC
Ano
2013
Provas
Disciplina
Programação
Assuntos

De acordo com o código PHP a seguir:

$i = 0;
while(1) {
if($i == 10)
break;
echo ++$i;
}

Qual o resultado que esse código irá retornar?

Alternativas
Comentários
  • O intervalo inicia no número "1", pois o While define isso no comando: while (1), caso não definisse, o intervalo iniciaria em "0".

  • A colega Dayene se equivocou, PHP é chato e funciona diferente um pouco.

    Lembrando que PHP interpreta o número 0 como FALSO e qualquer outro número como VERDADEIRO.

    Portanto while(1) será lido continuamente como VERDADEIRO até que ocorra uma condição de parada ( BREAK)

    A mágica ocorre na linha:

    echo ++$i; 

    Pelo fato de haver um pré-incremento:

    pois primeiro iremos SOMAR 1 a variável i, para depois imprimir na tela.

    echo ++$i; //Aqui a variável i valerá 1, para após ser impressa na tela.

    Se fosse pós-incremento($i++)

    echo $i++ // Primeiramente iriamos imprimir o valor, para depois incrementar.

    Para quem quiser se aprofundar mais, está em Javascript, porém o funcionamento é o mesmo https://pt.stackoverflow.com/questions/15800/qual-a-diferen%C3%A7a-entre-pr%C3%A9-e-p%C3%B3s-incremento-em-javascript

    Sabendo disto, vamos a variável $i receberá os valores de 1 até 10.

    Mas MAX, como até 10? Assim:

    a variável $i vale 9

    echo ++$i //Lembre-se de que iremos, primeiramente, incrementar: $i valerá 10 e depois iremos imprimir na tela.

    GABARITO ALTERNATIVA B