porque quando eu coloco o i++; antes do alert ele começa com valor 2 e quando coloco o i++, após o alert ele começa com valor 0?
porque quando eu coloco o i++; antes do alert ele começa com valor 2 e quando coloco o i++, após o alert ele começa com valor 0?
Francisco, tudo bem? =)
Não sei se entendi sua dúvida... Se importa em reformulá-la? =)
Fábio
Francisco,
Bom dia,
Se puder também colocar o seu código, mesmo que simples, assim fica bem fácil para exemplificar o que está acontecendo.
<meta charset="utf-8">
<script>
    function pulaLinha() {
        document.write("<br>");
        document.write("<br>");
    }
    function mostra(frase) {
        document.write(frase);
        pulaLinha();
    var i = 0;
    while(i <= 10){
        i++;
        alert( "O resultado é" + (2 * i));
    }
    }     
mostra("Fim");
</script>
primeiro eu fiz assim, e começou  já com valor 2.<meta charset="utf-8">
<script>
    function pulaLinha() {
        document.write("<br>");
        document.write("<br>");
    }
    function mostra(frase) {
        document.write(frase);
        pulaLinha();
    var i = 0;
    while(i <= 10){
        i++;
        alert( "O resultado é" + (2 * i));
    }
    }     
mostra("Fim");
</script>assim começou com valor 2.
<meta charset="utf-8">
<script>
    function pulaLinha() {
        document.write("<br>");
        document.write("<br>");
    }
    function mostra(frase) {
        document.write(frase);
        pulaLinha();
    var i = 0;
    while(i <= 10){
        alert( "O resultado é" + (2 * i));
        i++;
assim começa com valor zero. 
    }
    }     
mostra("Fim");
</script>Francisco,
Bom dia
O que acontece é o seguinte, Quando você declara e inicializa o i ele tem o valor de 0 e se você imprimir o valor no alert ele já adicionou 1 ao i ( i++) e depois fez vezes 2 ( 2 * i), por isso no alert imprime 2. Se você ver o valor de i após o alert, digo usando um ponto de parada após o alert, ele deveria imprimir 1, pois esse é o valor de i na primeira passagem do loop. Se você olhar o valor de i antes de executar a linha i++, ele na primeira execução será 0 e após passar pelo i++, já se torna 1.
Veja se você consegue entender a minha explicação, qualquer coisa estou à disposição.
O meu código está assim e ele só imprime o alert com o número 2 10 vezes. Não entendi o que está acontecendo.
<meta charset="UTF-8">
<script>
    function pulaLinha() {
    document.write("<br><br>");
}
    function mostra(frase) {
        document.write(frase);
        pulaLinha();
}
    var i = 0;
    while( i < 10){
    alert(" O resultado é " + (2 * 1) );
    i++;
}
</script>