Foro de elhacker.net

Programación => 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
  1. 'Asigno edad
  2.        edadInt= 5
  3.  
  4.        'Uso de la Sentecia Select
  5.        Select Case edadInt
  6.            Case Is < 2
  7.                strEtapa = "Guarderia y/o Maternal"
  8.  
  9. Case (edadInt> 2 And edadInt< 6) 'Porqué aca no entra? Si intEdad = 5?
  10.                strEtapa = "Edad para Kinder"
  11.  
  12. Case 6
  13.                strEtapa = "Edad para Primaria"
  14.            Case Is < 12
  15.                strEtapa = "Debes tener entre 6 y 11 años"
  16.            Case 13, 14, 15
  17.                strEdad = "Debe ir a la seundaria"
  18.            Case Else
  19.                strEdad = "Debes estar en otra etapa de estudio"
  20.        End Select
  21.  


Título: Re: [DUDA] Select Case
Publicado por: XresH en 21 Mayo 2013, 03:25 am
Estás declarando mal:

Código:
Case (edadInt> 2 And edadInt< 6)

Cambialo

Código:
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
  1.        Select Case edadInt
  2.           Case Is < 2
  3.               strEtapa = "Guarderia y/o Maternal"
  4.  
  5.           Case 3 To 5 'Porqué aca no entra? Si intEdad = 5?
  6.               strEtapa = "Edad para Kinder"
  7.  
  8.           Case 6
  9.               strEtapa = "Edad para Primaria"
  10.           Case Is < 12
  11.               strEtapa = "Debes tener entre 6 y 11 años"
  12.           Case 13 To 15
  13.               strEdad = "Debe ir a la seundaria"
  14.           Case Else
  15.               strEdad = "Debes estar en otra etapa de estudio"
  16.       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!!!