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>