Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: Zodiak98 en 21 Mayo 2013, 03:06 AM

Título: [DUDA] Select Case
Publicado por: Zodiak98 en 21 Mayo 2013, 03:06 AM
Tengo una duda de una expresión en el Select Case, mi duda es la siguiente
si existe una variable cuyo valor es 5 llamado edadInt

y existe una expresión del select case de la siguiente forma:
Case (edadInt > 2 And edadInt < 6)

Porqué la ignora? Es decir con el operador And lo que hace es que si se cumple las 2 expressiones ejecutara el código que tiene dentro de su expresión.

Es decir edadInt es mayor que 2? eso es correcto aah pero tambien es mejor que 6? Sí

Entonces? Porque ignora esta expresión?

Aca el código

Código (vb) [Seleccionar]

'Asigno edad
       edadInt= 5

       'Uso de la Sentecia Select
       Select Case edadInt
           Case Is < 2
               strEtapa = "Guarderia y/o Maternal"
         
Case (edadInt> 2 And edadInt< 6) 'Porqué aca no entra? Si intEdad = 5?
               strEtapa = "Edad para Kinder"
           
Case 6
               strEtapa = "Edad para Primaria"
           Case Is < 12
               strEtapa = "Debes tener entre 6 y 11 años"
           Case 13, 14, 15
               strEdad = "Debe ir a la seundaria"
           Case Else
               strEdad = "Debes estar en otra etapa de estudio"
       End Select
Título: Re: [DUDA] Select Case
Publicado por: XresH en 21 Mayo 2013, 03:25 AM
Estás declarando mal:

Case (edadInt> 2 And edadInt< 6)

Cambialo

Case Is > 2 And edadInt < 6


Ya estas asignando el caso, no debes colocarlo de nuevo en la primer comparacion.


Saludos.



Título: Re: [DUDA] Select Case
Publicado por: 79137913 en 21 Mayo 2013, 13:24 PM
HOLA!!!

La forma en la que lo estan planteando es incorrecta, se pierden muchos recursos sin sentido...

La forma correcta es

Código (vb) [Seleccionar]
        Select Case edadInt
           Case Is < 2
               strEtapa = "Guarderia y/o Maternal"

           Case 3 To 5 'Porqué aca no entra? Si intEdad = 5?
               strEtapa = "Edad para Kinder"

           Case 6
               strEtapa = "Edad para Primaria"
           Case Is < 12
               strEtapa = "Debes tener entre 6 y 11 años"
           Case 13 To 15
               strEdad = "Debe ir a la seundaria"
           Case Else
               strEdad = "Debes estar en otra etapa de estudio"
       End Select


PERO...

Tu algoritmo de seleccion es muy errado tambien...

si la persona tiene menos de 0 años tambien dira " guarderia"
Si la persona tiene 2 años dira "Debes estar en otra etapa de estudio"
Si la persona tiene 12 años dira "Debes estar en otra etapa de estudio"
Fijate que un < o > no son iguales a <= o >=.

GRACIAS POR LEER!!!