Visual Basic.NET - SELECT....CASE

 
Vista:
sin imagen de perfil

SELECT....CASE

Publicado por PETETE (37 intervenciones) el 15/12/2016 18:42:16
Buenas, he estado haciendo un programilla para practicar la instrucción SELECT...CASE. Aqui os dejo el codigo y os comento.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
opcion = 2
 
Console.WriteLine("la opcion a utilizar es: " & opcion)
 
Console.ReadLine()
 
Select opcion
 
    Case Is = 0
 
        menu()
 
    Case Is = 1
 
        carga()
 
    Case Is = 2
 
        pasajeros()
 
    Case Is = 3
 
        encomiendas()
 
    Case Is = 4
 
        animales()
 
End Select


Esto solo es un cachito codigo.
El codigo entero tiene 5 subrutinas. Cada subrutina tiene otro menu con diferentes opciones.
La cosa es que con el codigo que os he pasado, al pulsar los numeros 0-1-2-3-4 debería llevarme a otro menu con otras 4 opciones. Pues no. Me explico, al principio de este menu, pongo la linea " opcion = 2" para elegir la opcion 2 ( se que asi esta mal pero bueno) pero la cosa es que si no pongo esa linea siempre me elige la opcion 0.
Otra cosa que quiero comentar es que cuando escribo " opcion=1" me aparece el menu 1, con todas sus opciones. pero cuando selecciono una de esas opciones pulsando un numero u otro ( como el menu de arriba) el programa se bloquea y sale de la pantalla consola de visual basic.

¿Alguien que me pueda ayudar?

una ayudita por favor..

Un saludo,

PETETE;)
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
sin imagen de perfil
Val: 481
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

SELECT....CASE

Publicado por Miguel (476 intervenciones) el 15/12/2016 22:34:44
No entiendo muy bien lo que tratas de hacer... Te coloco un código de ejemplo para el uso del "Select Case":


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Console.WriteLine("*** OPCIONES ***)
Console.WriteLine("1: Opción 1")
Console.WriteLine("2: Opción 2")
Console.WriteLine("3: Opción 3")
Console.WriteLine(" ")

Console.Write("Seleccione una opción:")

Dim entrada = Console.ReadLine()

Dim opcion As Integer = 0

While True

   If Integer.TryParse(entrada, opcion) Then
      If opcion >= 1 And opcion <=  3 Then
         Exit While
      End If
   End If

   Console.Write("Seleccione una opción válida:")
   entrada = Console.ReadLine()

End While


'' Uso
Select Case opcion
   
   Case 1
       Opcion1()

   Case 2
       Opcion2()

   Case 3
      Opcion3()


   Case Else
      Console.WriteLine("Opción #:" & opcion) 
 
End Select


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

SELECT....CASE

Publicado por PETETE (37 intervenciones) el 16/12/2016 14:37:35
Buenas, he probado tu codigo y me da este mensaje:

La conversión de la cadena "" en el tipo 'Integer' no es válida.

Que aprte del codigo tengo que cambiar para que me desaparezca ese error? igual es fallo de mi codigo.

El error me aparece en la linea de codigo esta:

ttarifa = CInt(Console.ReadLine)

y no entiendo porque...

Gracias.

Un saludo de vuestro amigo y vecino,

PETETE;)
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
sin imagen de perfil
Val: 481
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

SELECT....CASE

Publicado por Miguel (476 intervenciones) el 16/12/2016 20:59:12
El valor que le estás pasando (que es la entrada de la consola) a la función "CInt" no es numérico. Utiliza "Integer.TryParse" como te coloqué en el ejemplo para evitar estos errores.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar