
Escopo No For Next...
#1
Posted 22/11/2005, 14:47
Gostaria que alguém me explicasse por que isso acontece no For Next. Vejam, a repetição deveria ser feita 9 vezes. Até ai, sem problemas.
<%
for i = 1 to 9
Response.Write i & "<br>"
next
Response.Write "O valor é" & i
%>
A dúvida surge quando apresento o valor da variável i fora do for next... por que o valor apresentado é 10 e não 9 ?
#2
Posted 22/11/2005, 15:45

contador = contador + 1
“Obstáculos são aquelas coisas medonhas que você vê quando tira seus olhos de seu objetivo” (Henry Ford)
“É impossível para um homem aprender aquilo que ele acha que já sabe.” (Epíteto)
“A única razão da existência do tempo é para que todas as coisas não aconteçam de uma vez.”(Albert Einstein)
#3
Posted 22/11/2005, 18:00
#4
Posted 22/11/2005, 23:39
for i = 1 to 9
...
i = começa no 1 e vai até o 9...
i = 1
i = 2
i = 3
i = 4
i = 5
i = 6
i = 7
i = 8
i = 9
Acaba o for, era para o i ficar igual ao ultimo valor que ele recebeu.. hehe
e naum, ganhar mais um

========================
Bem, fui para o JS, que é quem eu sei depois do ASP, e foi a mesma resposta.. hehehe... mesmo eu naum entendendo a logica, tem logica.. mas tb pode ser o sono e o vinho que naum me deixa entender... hehehe
ai vai em JS para comprovar... que a culpa naum é da microsoft, e sim eu que ja bebi de mais... heheheheeh
<script> for (var i = 1; i < 10; i++){ document.write (i); var x = i; } document.write ("<br />"); document.write ("O valor é: "+i); </script>
* Administração e Configuração de Servidores;
* Combinação Perfeita: NGINX + PHP + VARNISH + HAPROXY
* otavio*iporto.com ~ Tel: +55 51 3366 0177 | +55 51 4063 7343 |
* @iporto
#5
Posted 22/11/2005, 23:58
i começou com 1..
i = 1 achou o Next (i = i+1) i = 2 achou o Next (i = i+1) i = 3 achou o Next (i = i+1) i = 4 achou o Next (i = i+1) i = 5 achou o Next (i = i+1) i = 6 achou o Next (i = i+1) i = 7 achou o Next (i = i+1) i = 8 achou o Next (i = i+1) i = 9 achou o Next (i = i+1) Ops... i = 10 saimos do For..
Todas as Linguagens, se voce tivesse colocado assim :
<%
for i = 1 to 9 step 2 ' Modo de Incrementar, se ocultar ele por default, vai de 1 em 1
Response.Write i & "<br>"
next
Response.Write "O valor é" & i
%>
o seu Next seria de dois em dois, apesar de terminar no 9 o i iria exibir 11
PS..: Luis, vendo vc bebado vou te acompanhar, acabei de abrir uma latinha de Skol, so nao pergunte mais pq agora a cabeça ja era ..rs
“Obstáculos são aquelas coisas medonhas que você vê quando tira seus olhos de seu objetivo” (Henry Ford)
“É impossível para um homem aprender aquilo que ele acha que já sabe.” (Epíteto)
“A única razão da existência do tempo é para que todas as coisas não aconteçam de uma vez.”(Albert Einstein)
#6
Posted 23/11/2005, 00:03

* Administração e Configuração de Servidores;
* Combinação Perfeita: NGINX + PHP + VARNISH + HAPROXY
* otavio*iporto.com ~ Tel: +55 51 3366 0177 | +55 51 4063 7343 |
* @iporto
#7
Posted 23/11/2005, 00:17
Ficam sim, observe o exemplo que tentei explicar pro Luis Otavio (Antes de beber)Pensei que quando declaradas, as variaveis ficavam armazenadas em um "local" específicio da memória
assim, o encerramento do loop não interferiria em seu valor após o término
o Looping não interferiu no valor correto, se ele nao fosse dessa maneira nunca iria sair do FOR, por isso ele soma + 1 ou a quantidade que voce quer que ele ande..
“Obstáculos são aquelas coisas medonhas que você vê quando tira seus olhos de seu objetivo” (Henry Ford)
“É impossível para um homem aprender aquilo que ele acha que já sabe.” (Epíteto)
“A única razão da existência do tempo é para que todas as coisas não aconteçam de uma vez.”(Albert Einstein)
#8
Posted 24/11/2005, 01:25
for x = 1 to 10
Response.Write "O de x usando for é " & x & "<br>"
if x = 10 then exit for
next
Isso é usado no VB e funciona aqui, para o meu alivio. Assim não preciso subtrair o valor final para ter o resultado desejado !

#9
Posted 24/11/2005, 07:50
<% do i = i + 1 response.write i & "<br>" Loop While i < 9 Response.Write "<b>"& i &"</b>" %>
[]'s
“Obstáculos são aquelas coisas medonhas que você vê quando tira seus olhos de seu objetivo” (Henry Ford)
“É impossível para um homem aprender aquilo que ele acha que já sabe.” (Epíteto)
“A única razão da existência do tempo é para que todas as coisas não aconteçam de uma vez.”(Albert Einstein)
#10
Posted 24/11/2005, 09:33

msn: mathe@diretoriow.com.br
icq: n lembro
e-mail: mathe@diretoriow.com.br
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)