SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Visual Basic para principiantes => Mensaje iniciado por: ric83 en Viernes 13 de Julio de 2007, 19:58

Título: Do While Loop
Publicado por: ric83 en Viernes 13 de Julio de 2007, 19:58
////////////////////////////////////
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim intValor As Byte = 5
        Dim intResultado As Byte
        Do While intValor > 0
            intResultado = intResultado + intValor
            intValor = intValor - 1
        Loop
        MessageBox.Show(intResultado)

    End Sub

//////////////
intResultado, me arroja 15 ya le estuve intentado entender por mi ceunta pero no pude
alguien me lo podria explicar detalladamente :D GRACIAS
Título: Re: Do While Loop
Publicado por: F_Tanori en Sábado 14 de Julio de 2007, 12:43
:lol:  :blink:

Es facil, aunque primero que nada eso es .NET y el foro es aca http://foros.solocodigo.com/index.php?showforum=53 (http://foros.solocodigo.com/index.php?showforum=53)

el ciclo solo hace 5 iteraciones,
Código: Text
  1.  Dim intValor As Byte = 5
  2.  

por el decremento en 1

Citar
intValor = intValor - 1

y la suma es la siguiente

Código: Text
  1. intResultado = intResultado + intValor
  2.  


intValor=5

1ra Vuelta ( intResultado =0)

intResultado = 0 +5

2da Vuelta (intResultado =5)

intResultado = 5 +4

3ra Vuelta (intResultado =9)

intResultado = 9 + 3

4ta Vuelta (intResultado =12)

intResultado = 12 + 2

5ta Vuelta (intResultado =14)

intResultado = 14 + 1

Citar
intResultado =15

Cita de: "ric83"
intResultado, me arroja 15

a la 6ta vuelta intValor llega a ser 0 por el decremento y ya no entra al ciclo



http://www.contaduria.uady.mx/fundamentos_...cumuladores.htm (http://www.contaduria.uady.mx/fundamentos_de_programacion/contadores_y_acumuladores.htm)

Saludos
Título: Re: Do While Loop
Publicado por: mjesun en Jueves 23 de Agosto de 2007, 02:01
para arreglarlo, basta con que cambies el valor del > 0 del while por > 1. de esa manera cuando intvalor valga 0, ya no se volvera a ejecutar.

saludos, miguel