do while y do until

Iniciado por jesusarturoes, 18 Diciembre 2010, 03:35 AM

0 Miembros y 1 Visitante están viendo este tema.

jesusarturoes

bueno tengo una duda de como se utilizan es qu estoy empezando desde incios pero me quede atorado ahi y me gustaria mucho qu alguien me lo explicará como si fuera niño de primaria xD solo quiero entenderlo... por favor si me ayudan se los agradeceré mucho  :P
Nunca consideres el estudio como una obligación, sino como una oportunidad para penetrar en el bello y maravilloso mundo del saber.

ignorantev1.1

Do while se ejecuta mientras la expresion sea cierta...

Do until se ejecuta hasta que la expresion sea cierta...


jesusarturoes

Cita de: ignorantev1.1 en 18 Diciembre 2010, 04:00 AM
Do while se ejecuta mientras la expresion sea cierta...

Do until se ejecuta hasta que la expresion sea cierta...



;-) muchisimas gracias le entendi perfectamente, pero otra cosilla si no es mucha molestia...

ya vi por el ejemplo un codigo:

dim sum as integer = 0
dim counter as integer = 0
do while sum < 100
sum = sum + cint (textbox1.text)
counter = counter +1


me podrian explicar por que se agrega la ultima linea counter = counter +1 por que se le agrega ese +1 ???  ;) gracias por tu ayuda ignorantev1.1
Nunca consideres el estudio como una obligación, sino como una oportunidad para penetrar en el bello y maravilloso mundo del saber.

ignorantev1.1

emmm pues no veo alguna funcion especial del codigo, creo que no lo pusiste todo.

Pero la sola linea:

counter = counter + 1

(Supongo) que esta para que en cada vuelta del ciclo se le sume 1 a counter... no se si eso es lo que preguntabas  :silbar:

jesusarturoes

Cita de: ignorantev1.1 en 18 Diciembre 2010, 04:38 AM
emmm pues no veo alguna funcion especial del codigo, creo que no lo pusiste todo.

Pero la sola linea:

counter = counter + 1

(Supongo) que esta para que en cada vuelta del ciclo se le sume 1 a counter... no se si eso es lo que preguntabas  :silbar:
ok gracias  :)
Nunca consideres el estudio como una obligación, sino como una oportunidad para penetrar en el bello y maravilloso mundo del saber.

79137913

HOLA!!!

Te dejo un ejemplo:

Código (vb) [Seleccionar]

    x = 0
    Do While x < 100
        x = x + 1
    Loop
    Debug.Print x
    x = 0
    'es lo mismo que
    Do Until Not x < 100
        x = x + 1
    Loop


GRACIAS POR LEER!!!
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

79137913                          *Shadow Scouts Team*

jesusarturoes

Cita de: 79137913 en 20 Diciembre 2010, 15:08 PM
HOLA!!!

Te dejo un ejemplo:

Código (vb) [Seleccionar]

    x = 0
    Do While x < 100
        x = x + 1
    Loop
    Debug.Print x
    x = 0
    'es lo mismo que
    Do Until Not x < 100
        x = x + 1
    Loop


GRACIAS POR LEER!!!
puedes poner x enves de declarar una variable???  :) ojala me respondas por que soy nuevo en esto  :xD
Nunca consideres el estudio como una obligación, sino como una oportunidad para penetrar en el bello y maravilloso mundo del saber.

Anco

X es la variable. Leete un Manual/Guia/Libro ::)
???

79137913

HOLA!!!

Lo mas recomendable es declarar todas las variables, pero VB6 tiene un sistema de reconocimiento automatico de variables y tipos de datos, en ese codigo calculo que el VB6 declaro implicitamente la variable X como integer.

Podes poner todas las variables que quieras en el codigo sin delcarar, pero te va a traer problemas, ya que VB6 las declara privadas dentro del procedimiento que estas haciendo, entonces si queres referenciarla entre 2 procedimientos, por Ej form1_load() y Command1_Click() vas a tener que declararla vos manualmente fuera de ambos procedimientos.

Ejemplo en codigo:

Aca VB6 te declara automaticamente la variable como privada del procedimiento Form_load()
Código (vb) [Seleccionar]
Private Sub Form_Load()
x = 50
'Aca al usar la variable x VB6 la declaro automaticamente
'como "Dim x As Integer" pero dentro de Form_load()
Call otroProcedimiento
End Sub

Private Sub otroProcedimiento()
Debug.Print x
'Aca quiero escribir la variable X en la ventana de inmediato//debug
'y no aparece nada, ya que la variable era exclusiva del otro procedimiento
'y VB6 la declaro como string calculo ya que en el debug aparece ""
End Sub


Aca uno declara la variable para todo el modulo:
Código (vb) [Seleccionar]
Dim x As Integer
Private Sub Form_Load()
x = 50
'Aca al usar la variable x VB6 la declaro automaticamente
'como "Dim x As Integer" pero dentro de Form_load()
Call otroProcedimiento
End Sub

Private Sub otroProcedimiento()
Debug.Print x
'Aca quiero escribir la variable X en la ventana de inmediato//debug
'y no aparece nada, ya que la variable era exclusiva del otro procedimiento
End Sub


Aca X toma valores de Cualquier tipo:
Código (vb) [Seleccionar]
Private Sub Form_Load()
x = 50
x = "hola"
x = #1/1/1999#
'Aca la variable x fue declarada por VB6 como "Dim X As Variant"
'osea una variable que puede tomar cualquier valor, pero esta te
'trae problemas al hacer operaciones y demas. No es recomendable.
End Sub


Aca da error ya que no coinciden los tipos
Código (vb) [Seleccionar]
Dim x as Integer
Private Sub Form_Load()
x = 50
'Despues de esta linea da el error
x = "hola"
End Sub


Seguro que no me pude expresar bien, cualquier cosa avisame e intento de nuevo.

GRACIAS POR LEER!!!
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

79137913                          *Shadow Scouts Team*

jesusarturoes

Cita de: 79137913 en 21 Diciembre 2010, 12:45 PM
HOLA!!!

Lo mas recomendable es declarar todas las variables, pero VB6 tiene un sistema de reconocimiento automatico de variables y tipos de datos, en ese codigo calculo que el VB6 declaro implicitamente la variable X como integer.

Podes poner todas las variables que quieras en el codigo sin delcarar, pero te va a traer problemas, ya que VB6 las declara privadas dentro del procedimiento que estas haciendo, entonces si queres referenciarla entre 2 procedimientos, por Ej form1_load() y Command1_Click() vas a tener que declararla vos manualmente fuera de ambos procedimientos.

Ejemplo en codigo:

Aca VB6 te declara automaticamente la variable como privada del procedimiento Form_load()
Código (vb) [Seleccionar]
Private Sub Form_Load()
x = 50
'Aca al usar la variable x VB6 la declaro automaticamente
'como "Dim x As Integer" pero dentro de Form_load()
Call otroProcedimiento
End Sub

Private Sub otroProcedimiento()
Debug.Print x
'Aca quiero escribir la variable X en la ventana de inmediato//debug
'y no aparece nada, ya que la variable era exclusiva del otro procedimiento
'y VB6 la declaro como string calculo ya que en el debug aparece ""
End Sub


Aca uno declara la variable para todo el modulo:
Código (vb) [Seleccionar]
Dim x As Integer
Private Sub Form_Load()
x = 50
'Aca al usar la variable x VB6 la declaro automaticamente
'como "Dim x As Integer" pero dentro de Form_load()
Call otroProcedimiento
End Sub

Private Sub otroProcedimiento()
Debug.Print x
'Aca quiero escribir la variable X en la ventana de inmediato//debug
'y no aparece nada, ya que la variable era exclusiva del otro procedimiento
End Sub


Aca X toma valores de Cualquier tipo:
Código (vb) [Seleccionar]
Private Sub Form_Load()
x = 50
x = "hola"
x = #1/1/1999#
'Aca la variable x fue declarada por VB6 como "Dim X As Variant"
'osea una variable que puede tomar cualquier valor, pero esta te
'trae problemas al hacer operaciones y demas. No es recomendable.
End Sub


Aca da error ya que no coinciden los tipos
Código (vb) [Seleccionar]
Dim x as Integer
Private Sub Form_Load()
x = 50
'Despues de esta linea da el error
x = "hola"
End Sub


Seguro que no me pude expresar bien, cualquier cosa avisame e intento de nuevo.

GRACIAS POR LEER!!!

muchas gracias!! le entendi muy bien...

CitarX es la variable. Leete un Manual/Guia/Libro ::)

es lo que estoy haciendo pero eso no venia en el libro asi que vine aqui para poder entender bien el do while y el do until y me quedo muy claro gracias a ustedes... tambien a ti!  :)
Nunca consideres el estudio como una obligación, sino como una oportunidad para penetrar en el bello y maravilloso mundo del saber.