Foros del Web » Programación para mayores de 30 ;) » .NET »

Programa Quiniela Deportiva

Estas en el tema de Programa Quiniela Deportiva en el foro de .NET en Foros del Web. Hola, estoy aprendiendo vb.net y tengo que realizar un ejercicio usando arrays en el cual se solicita al usuario los resultados de un evento. El ...
  #1 (permalink)  
Antiguo 17/01/2011, 07:32
Avatar de MicroHack  
Fecha de Ingreso: agosto-2006
Ubicación: Barcelona
Mensajes: 153
Antigüedad: 17 años, 8 meses
Puntos: 0
Información Programa Quiniela Deportiva

Hola,

estoy aprendiendo vb.net y tengo que realizar un ejercicio usando arrays en el cual se solicita al usuario los resultados de un evento.

El programa funciona correctamente, solo que ahora quiero limitar y controlar el "valor" que el usuario introduce para que no sea diferente de "1", "X" o "2"

Para ello he querido usar un While, pero parece que algo falla porque no puedo indicarle los 3 valores a la vez.

Código:
        Dim _var As Char

                Console.Write("1º Pronostico: ")
                _var = CChar(Console.ReadLine())

                While _var <> "1"c Or "2 c Or "X"c Or "x"  ' (Aqui es donde me da el Error)

                    Console.WriteLine("ERROR, Inique un valor entre 1/X/2: ")
                    Console.ReadLine()
                
                End While
¿Alguna idea de porque no funciona?

Última edición por MicroHack; 17/01/2011 a las 07:39
  #2 (permalink)  
Antiguo 17/01/2011, 07:54
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Programa Quiniela Deportiva

Hola MicroHack no funciona porque no puedes comparas un tipo de char de esa manera, prueba haciendo esto:

Código vb:
Ver original
  1. Dim _var As Char
  2.  
  3.                 Console.Write("1º Pronostico: ")
  4.                 _var = CChar(Console.ReadLine())
  5.  
  6.                 While !_var.Equals("1")  Or !_var.Equals("2") Or !_var.Equals("X")
  7.  
  8.                     Console.WriteLine("ERROR, Inique un valor entre 1/X/2: ")
  9.                     Console.ReadLine()
  10.                
  11.                 End While
Espero te sirva. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #3 (permalink)  
Antiguo 17/01/2011, 10:49
Avatar de MicroHack  
Fecha de Ingreso: agosto-2006
Ubicación: Barcelona
Mensajes: 153
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Programa Quiniela Deportiva

Cita:
Iniciado por Aquaventus Ver Mensaje
Hola MicroHack no funciona porque no puedes comparas un tipo de char de esa manera, prueba haciendo esto:

Código vb:
Ver original
  1. Dim _var As Char
  2.  
  3.                 Console.Write("1º Pronostico: ")
  4.                 _var = CChar(Console.ReadLine())
  5.  
  6.                 While !_var.Equals("1")  Or !_var.Equals("2") Or !_var.Equals("X")
  7.  
  8.                     Console.WriteLine("ERROR, Inique un valor entre 1/X/2: ")
  9.                     Console.ReadLine()
  10.                
  11.                 End While
Espero te sirva. Saludos!.

Gracias por tu respuespuesta Aquaventus pero lo he probado y me da este Error:

"." o "!" solo puede aparecer dentro de una instruccion "With".
  #4 (permalink)  
Antiguo 17/01/2011, 10:53
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Programa Quiniela Deportiva

intenta asi :
Código vb:
Ver original
  1. Dim _var As Char
  2.  
  3.                 Console.Write("1º Pronostico: ")
  4.                 _var = CChar(Console.ReadLine())
  5.  
  6.                 if !_var.Equals("1")  Or !_var.Equals("2") Or !_var.Equals("X")
  7.  
  8.                     Console.WriteLine("ERROR, Inique un valor entre 1/X/2: ")
  9.                     Console.ReadLine()
  10.                
  11.                 End if
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #5 (permalink)  
Antiguo 17/01/2011, 10:59
Avatar de MicroHack  
Fecha de Ingreso: agosto-2006
Ubicación: Barcelona
Mensajes: 153
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Programa Quiniela Deportiva

Cita:
Iniciado por Aquaventus Ver Mensaje
intenta asi :
Código vb:
Ver original
  1. Dim _var As Char
  2.  
  3.                 Console.Write("1º Pronostico: ")
  4.                 _var = CChar(Console.ReadLine())
  5.  
  6.                 if !_var.Equals("1")  Or !_var.Equals("2") Or !_var.Equals("X")
  7.  
  8.                     Console.WriteLine("ERROR, Inique un valor entre 1/X/2: ")
  9.                     Console.ReadLine()
  10.                
  11.                 End if
Me sigue diciendo lo mismo :s
  #6 (permalink)  
Antiguo 17/01/2011, 11:01
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Programa Quiniela Deportiva

??? que raro :S haber esperame que estoy instalando el visual de nuevo porque tenia unos problemas, y el code te lo pase asi de logica, termino de instalar lo pruebo y te digo. Saludos!
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #7 (permalink)  
Antiguo 17/01/2011, 11:03
Avatar de MicroHack  
Fecha de Ingreso: agosto-2006
Ubicación: Barcelona
Mensajes: 153
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Programa Quiniela Deportiva

Cita:
Iniciado por Aquaventus Ver Mensaje
??? que raro :S haber esperame que estoy instalando el visual de nuevo porque tenia unos problemas, y el code te lo pase asi de logica, termino de instalar lo pruebo y te digo. Saludos!
Deacuerdo, espero, muchas gracias


-------------------------

EDIT: Ya encontre la solucion, esta es la sintaxis correcta para que funcione:

Código:
While (_var <> "1"c And _var <> "2"c And _var <> "x"c And _var <> "X"c)
    Console.WriteLine("ERROR, Inique un valor entre 1/X/2: ")
                    _var = CChar(Console.ReadLine())

Última edición por MicroHack; 18/01/2011 a las 06:58

Etiquetas: programa, quiniela
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:35.