• Domingo 28 de Abril de 2024, 16:29

Autor Tema:  Qué habríais usado en lugar de GoTo?  (Leído 1708 veces)

vemv91

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Qué habríais usado en lugar de GoTo?
« en: Domingo 23 de Mayo de 2010, 17:24 »
0
Aquí un programa que pregunta la tabla de multiplicar.

Código: vb.net
  1.  
  2.         Dim T As Integer ' Número del que se pide la tabla
  3.         Dim M As Integer ' Número de la tabla por el que se va a multiplicar
  4.         Dim R As String ' Respuesta del usuario
  5.         T = 1
  6.         M = 2
  7.  
  8.         Do ' Actualiza la tabla
  9.             T += 1
  10.             M = 2
  11.             Do ' Actualiza el número de la tabla por el que se va a multiplicar
  12. line14:         ' GOTO
  13.                 Console.WriteLine(T & " por " & M)
  14.                 R = Console.ReadLine()
  15.                 If IsNumeric(R) Then
  16.                     R = CInt(R)
  17.                 Else : GoTo line14 ' GOTO
  18.                 End If
  19.                 If R = T * M Then
  20.                     Console.WriteLine("Correcto")
  21.                     M += 1
  22.                 Else
  23.                     Console.WriteLine("Incorrecto. Pulse una tecla para continuar")
  24.                     Console.ReadLine()
  25.                 End If
  26.             Loop While M < 10
  27.         Loop While T < 10
  28.         Console.WriteLine("Felicidades; te sabes la tabla de multiplicar. Pulsa una tecla para continuar")
  29.         Console.ReadLine()
  30.  
  31.  

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

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Qué habríais usado en lugar de GoTo?
« Respuesta #1 en: Lunes 24 de Mayo de 2010, 23:06 »
0
Hola , lo puedes sustituir utilizando otro ciclo :p
aqui te dejo como ...

Código: Visual Basic
  1.  
  2.     Dim T As Integer  ' Número del que se pide la tabla
  3.     Dim M As Integer ' Número de la tabla por el que se va a multiplicar
  4.     Dim R As String ' Respuesta del usuario
  5.    
  6.     T = 1
  7.     M = 2
  8.    
  9.     Dim band As Integer
  10.  
  11.     Do ' Actualiza la tabla
  12.         T = T + 1
  13.         M = 2
  14.         Do ' Actualiza el número de la tabla por el que se va a multiplicar
  15.             band = 0
  16.             Do
  17.                 Console.WriteLine(T & " por " & M)
  18.                 R = Console.ReadLine()
  19.                 If IsNumeric(R) Then
  20.                     R = CInt(R)
  21.                     If R = T * M Then
  22.                         Console.WriteLine("Correcto")
  23.                         M = M + 1
  24.                         band = 1
  25.                     Else
  26.                         Console.WriteLine("incorrecto. Pulse una tecla para continuar")
  27.                         Console.ReadLine()
  28.                     End If
  29.                 End If
  30.             Loop While band = 0
  31.         Loop While M < 10
  32.     Loop While T < 10
  33.     Console.WriteLine("Felicidades; te sabes la tabla de multiplicar. Pulsa una tecla para continuar")
  34.    Console.ReadLine()
  35.  
  36.  

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Qué habríais usado en lugar de GoTo?
« Respuesta #2 en: Jueves 27 de Mayo de 2010, 12:30 »
0
Hay una instruccion  que es Continue
http://msdn.microsoft.com/es-es/library/801hyx6f%28v=VS.90%29.aspx


Código: vb.net
  1.       Dim T As Integer ' Número del que se pide la tabla
  2.       Dim M As Integer ' Número de la tabla por el que se va a multiplicar
  3.       Dim R As String ' Respuesta del usuario
  4.       T = 1
  5.       M = 2
  6.  
  7.         Do ' Actualiza la tabla
  8.             T += 1
  9.             M = 2
  10.             Do ' Actualiza el número de la tabla por el que se va a multiplicar
  11.                 Console.WriteLine(T & " por " & M)
  12.                 R = Console.ReadLine()
  13.                 If IsNumeric(R) Then
  14.                     R = CInt(R)
  15.                     If R = T * M Then
  16.                         Console.WriteLine("Correcto")
  17.                         M += 1
  18.                     Else
  19.                         Console.WriteLine("Incorrecto. Pulse una tecla para continuar")
  20.                         Console.ReadLine()
  21.                     End If
  22.                 Else
  23.                    Continue Do    
  24.                 End If
  25.             Loop While M < 10
  26.         Loop While T < 10
  27.       Console.WriteLine("Felicidades; te sabes la tabla de multiplicar. Pulsa una tecla para continuar")
  28.       Console.ReadLine()
  29.  
  30.  

Saludos
Por cierto esto es ;  movido  VB6 ---->.Net
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

vemv91

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Qué habríais usado en lugar de GoTo?
« Respuesta #3 en: Jueves 27 de Mayo de 2010, 13:14 »
0
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

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Qué habríais usado en lugar de GoTo?
« Respuesta #4 en: Miércoles 2 de Junio de 2010, 06:27 »
0
yo tambien optaria por el ciclo, solo que a veces al anidar ciclos es un poco confuso.