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
Ir a la versión completa