Visual Basic - no, no, no... no quiero Exit For/Do/While...

Life is soft - evento anual de software empresarial
 
Vista:

no, no, no... no quiero Exit For/Do/While...

Publicado por [email protected] (143 intervenciones) el 09/10/2002 19:25:54
A los que me han escrito:

Ayer publiqué una nota preguntando la manera de saltarme las sentencias de una iteración, PERO SIN SALIRME DEL BUCLE. Como ya dije (ver nota Iteraciones y continue), necesito un equivalente a la sentencia continue que tienen C, C++, C#, Java... es decir, que se salte las sentencias restantes a la iteración si se cumple una determinada condición, pero que siga el mismo bucle ejecutándose. Para eso, no sirven los Exits (Exit Do, Exit For, Exit While) por el simple hecho de que esto detendría TOTALMENTE la ejecución del bucle. La única manera que he encontrado es la sentencia GoTo, pero esta es una deficiencia de la programación estructurada, y muy pobre en cuanto a codificación (al convertir a ensamblador y a binario, vb la codifica de manera muy pobre y es muy propensa a errores (excepto dentro de las sentencias On Error GoTo <tag>:.

Gracias a los que me han contestado, pero esas respuestas no han sido de gran utilidad.

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:no, no, no... no quiero Exit For/Do/While...

Publicado por Victor Collado (51 intervenciones) el 09/10/2002 21:13:11
Hola

Utliza If Then o Select case dentro del bucle.

Por ejemplo:

Private Sub Form_Load()
Dim i, intVar As Integer

' Primer ejemplo con If then
intVar = 3
For i = 0 To intVar
If i = 2 Then
MsgBox "lo que quieras"
Else
MsgBox i
End If
Next

' Segundo ejemplo con select Case
For i = 0 To intVar
Select Case i
Case 1
MsgBox "lo que quieras"
Case Else
MsgBox i
End Select

Next
End Sub

Como ves cuando se cumple lo esperado hace lo que tengas previsto y vuelve arriba, te puse dos casos en el mismo ejemplo con if y Select case

Saludos

Victor Collado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no, no, no... no quiero Exit For/Do/While...

Publicado por martin (116 intervenciones) el 10/10/2002 00:42:46
Disculpa mi ignorancia o tal vez no entendi bien pero.... ¿podría ponerse una decision (if then) dentro del bucle?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no, no, no... no quiero Exit For/Do/While...

Publicado por [email protected] (143 intervenciones) el 10/10/2002 01:01:18
Sí, sí se podría hacer, Martín, pero sería duplicación de código... mala técnica, además de que sería mucho el código a duplicar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no, no, no... no quiero Exit For/Do/While...

Publicado por [email protected] (143 intervenciones) el 10/10/2002 01:01:25
Sí, sí se podría hacer, Martín, pero sería duplicación de código... mala técnica, además de que sería mucho el código a duplicar.

Gracias y saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no, no, no... no quiero Exit For/Do/While...

Publicado por Victor Collado (51 intervenciones) el 10/10/2002 14:45:37
Hola

Claro que se puede poner una sentencia If Then , y una Select case, de esta forma podras realizar una accion cuado tu bucle cumpla una condicion y seguir desarrollando el bucle. es la forma que puedes usar para no salir del bucle y realizar, como te dije una accion segun se cumpla tu condicion.

El ejemplo que te puse tiene un If then , dentro de un bucle y el otro un select case.

Saludos

Victor Collado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar