CLR: .Net / Mono / Boo / Otros CLR > VB .NET

 Qué habríais usado en lugar de GoTo?

(1/1)

vemv91:
Aquí un programa que pregunta la tabla de multiplicar.


--- Código: vb.net ---         Dim T As Integer ' Número del que se pide la tabla        Dim M As Integer ' Número de la tabla por el que se va a multiplicar        Dim R As String ' Respuesta del usuario        T = 1        M = 2         Do ' Actualiza la tabla            T += 1            M = 2            Do ' Actualiza el número de la tabla por el que se va a multiplicarline14:         ' GOTO                Console.WriteLine(T & " por " & M)                R = Console.ReadLine()                If IsNumeric(R) Then                    R = CInt(R)                Else : GoTo line14 ' GOTO                End If                If R = T * M Then                    Console.WriteLine("Correcto")                    M += 1                Else                    Console.WriteLine("Incorrecto. Pulse una tecla para continuar")                    Console.ReadLine()                End If            Loop While M < 10        Loop While T < 10        Console.WriteLine("Felicidades; te sabes la tabla de multiplicar. Pulsa una tecla para continuar")        Console.ReadLine()  
Pues eso, me falla un pelín la lógica para evitar el temido GoTo, ¿cómo lo habríais hecho vosotros?

Un saludo. ;)

g_ollivander:
Hola , lo puedes sustituir utilizando otro ciclo :p
aqui te dejo como ...


--- Código: Visual Basic ---     Dim T As Integer  ' Número del que se pide la tabla    Dim M As Integer ' Número de la tabla por el que se va a multiplicar    Dim R As String ' Respuesta del usuario        T = 1    M = 2        Dim band As Integer     Do ' Actualiza la tabla        T = T + 1        M = 2        Do ' Actualiza el número de la tabla por el que se va a multiplicar            band = 0            Do                Console.WriteLine(T & " por " & M)                R = Console.ReadLine()                If IsNumeric(R) Then                    R = CInt(R)                    If R = T * M Then                        Console.WriteLine("Correcto")                        M = M + 1                        band = 1                    Else                        Console.WriteLine("incorrecto. Pulse una tecla para continuar")                        Console.ReadLine()                    End If                End If            Loop While band = 0        Loop While M < 10    Loop While T < 10    Console.WriteLine("Felicidades; te sabes la tabla de multiplicar. Pulsa una tecla para continuar")   Console.ReadLine()  

F_Tanori:
Hay una instruccion  que es Continue
http://msdn.microsoft.com/es-es/library/801hyx6f%28v=VS.90%29.aspx



--- Código: vb.net ---      Dim T As Integer ' Número del que se pide la tabla      Dim M As Integer ' Número de la tabla por el que se va a multiplicar      Dim R As String ' Respuesta del usuario      T = 1      M = 2         Do ' Actualiza la tabla            T += 1            M = 2            Do ' Actualiza el número de la tabla por el que se va a multiplicar                Console.WriteLine(T & " por " & M)                R = Console.ReadLine()                If IsNumeric(R) Then                    R = CInt(R)                    If R = T * M Then                        Console.WriteLine("Correcto")                        M += 1                    Else                        Console.WriteLine("Incorrecto. Pulse una tecla para continuar")                        Console.ReadLine()                    End If                Else                   Continue Do                    End If            Loop While M < 10        Loop While T < 10      Console.WriteLine("Felicidades; te sabes la tabla de multiplicar. Pulsa una tecla para continuar")      Console.ReadLine()  
Saludos
Por cierto esto es ;  movido  VB6 ---->.Net

vemv91:
no conocía esa palabra clave, me ha gustado la idea.

declarar una variable auxiliar no dista tanto de un GoTo diría...

gracias y un saludo

yamazaki052:
yo tambien optaria por el ciclo, solo que a veces al anidar ciclos es un poco confuso.

Navegación

[0] Índice de Mensajes

Ir a la versión completa