Operador Ternario: iif
el if...then...else... comprimido
Es una forma más simple de escribir un if... then...else, en una sola linea:
Value = IIf ( Test AS Boolean , TrueExpression , FalseExpression ) Value = If ( Test AS Boolean , TrueExpression , FalseExpression )
Significado:
Evalúa la expresión "Test", y si es verdadera, retorna lo que resulte de evaluar la expresión "TrueExpresion", y si es falsa, retorna lo que resulte de evaluar la expresión "FalseExpresion"
Ejemplo:
En este ejemplo introducimos dos numeros, y con el botón comprobar, mostramos un mensaje:
- Si son iguales, nos dice "Son iguales"
- Si el primero es mayor que el segundo , nos dice "El primero es mayor que el segundo"
- Si el primero es menos que el segundo, nos dice "El segundo es mayor que el primero"
'
Gambas class file
Public
Sub
_new()
End
Public
Sub
Form_Open()
End
Public
Sub
ButtonComprobar_Click()
Dim
texto
As
String
Dim
textoIguales
As
String
=
("Son
iguales")
Dim
textoPrimeroMayorSegundo
As
String
=
("El
primero es mayor que el segundo")
Dim
textoPrimeroMenorSegundo
As
String
=
("El
segundo es mayor que el primero")
LabelComentario.text
=
IIf(ValueBoxNumeroUno.value
=
ValueBoxNumeroDos.value,
textoIguales,
IIf(ValueBoxNumeroUno.value
>
ValueBoxNumeroDos.value,
textoPrimeroMayorSegundo,
textoPrimeroMenorSegundo))
'esto
es igual que escribir:
'if
(ValueBoxNumeroUno.value = ValueBoxNumeroDos.value then
' LabelComentario.text = textoIguales
'
else
' if (ValueBoxNumeroUno.value > ValueBoxNumeroDos.value then
' LabelComentario.text = textoPrimeroMayorSegundo
' else
' LabelComentario.text = textoPrimeroMenorSegundo
' endif
'
endif
'
End
En este video podeis ver como funciona:
Código fuente: Alojado en google drive
Fuente:
http://gambaswiki.org/wiki/lang/iif?l=es
http://es.wikipedia.org/wiki/Operador_ternario