if ... elsif ... else ... endif Dichiarazioni
L' istruzione if
Un if istruzione consiste in un'espressione booleana seguita da una o più istruzioni.
Sintassi
La sintassi dell'istruzione if è -
if expression then
-- Statements will execute if the expression is true
end if
Se l'espressione booleana restituisce true, viene eseguito il blocco di codice all'interno dell'istruzione if. Se restituisce false, viene eseguita la prima serie di codice dopo la fine dell'istruzione if.
Esempio
#!/home/euphoria-4.0b2/bin/eui
integer a = 10
integer b = 20
if (a + b) < 40 then
printf(1, "%s\n", {"This is true if statement!"})
end if
if (a + b) > 40 then
printf(1, "%s\n", {"This is not true if statement!"})
end if
Questo produce il seguente risultato:
This is true if statement!
L' istruzione if ... else
Un if l'istruzione può essere seguita da un opzionale else istruzione, che viene eseguita quando l'espressione booleana è falsa.
Sintassi
La sintassi dell'istruzione if ... else è la seguente:
if expression then
-- Statements will execute if the expression is true
else
-- Statements will execute if the expression is false
end if
Esempio
#!/home/euphoria-4.0b2/bin/eui
integer a = 10
integer b = 20
if (a + b) < 40 then
printf(1, "%s\n", {"This is inside if statement!"})
else
printf(1, "%s\n", {"This is inside else statement!"})
end if
Questo produce il seguente risultato:
This is inside if statement!
L' istruzione if ... elsif ... else
Un if L'istruzione può essere seguita da qualsiasi numero di facoltativo elsif...else istruzione, che è molto utile per testare varie condizioni usando l'istruzione if ... elsif.
Sintassi
La sintassi dell'istruzione if ... elsif ... else è la seguente:
if expression1 then
-- Executes when the Boolean expression 1 is true
elsif expression2 then
-- Executes when the Boolean expression 2 is true
elsif expression3 then
-- Executes when the Boolean expression 3 is true
else
-- Executes when none of the above condition is true.
end if
Esempio
#!/home/euphoria-4.0b2/bin/eui
integer a = 10
integer b = 20
if (a + b) = 40 then
printf(1, "Value of (a + b ) is %d\n", a + b )
elsif (a + b) = 45 then
printf(1, "Value of (a + b ) is %d\n", a + b )
elsif (a + b) = 30 then
printf(1, "Value of (a + b ) is %d\n", a + b )
else
printf(1, "Value of (a + b ) is %d\n", 0 )
end if
Questo produce il seguente risultato:
Value of (a + b ) is 30
L' istruzione if ... label ... then
Un if può avere una clausola label appena prima della prima thenparola chiave. Nota che un fileelsif la clausola non può avere un'etichetta.
Un'etichetta if ... viene utilizzata solo per denominare il blocco if e i nomi delle etichette devono essere stringhe costanti tra virgolette doppie con parole singole o multiple. La parola chiave label distingue tra maiuscole e minuscole e deve essere scritta comelabel.
Sintassi
La sintassi della clausola label è la seguente:
if expression label "Label Name" then
-- Executes when the boolean expression is true
end if
Esempio
#!/home/euphoria-4.0b2/bin/eui
integer a = 10
integer b = 20
if (a + b) = 40 label "First IF Block" then
printf(1, "Value of (a + b ) is %d\n", a + b )
elsif (a + b) = 45 then
printf(1, "Value of (a + b ) is %d\n", a + b )
elsif (a + b) = 30 then
printf(1, "Value of (a + b ) is %d\n", a + b )
else
printf(1, "Value of (a + b ) is %d\n", 0 )
end if
Questo produce il seguente risultato:
Value of (a + b ) is 30
Istruzione if ... else annidata
È sempre legale annidare if…elsedichiarazioni. Ciò significa che puoi avere un'istruzione if-else all'interno di un'altra istruzione if-else.
Sintassi
La sintassi di annidato if ... else è la seguente:
if expression1 then
-- Executes when the boolean expression1 is true
if expression2 then
-- Executes when the boolean expression2 is true
end if
end if
Esempio
#!/home/euphoria-4.0b2/bin/eui
integer a = 10
integer b = 20
integer c = 0
if c = 0 then
printf(1, "Value of c is equal to %d\n", 0 )
if (a + b) = 30 then
printf(1, "Value of (a + b ) is equal to %d\n", 30)
else
printf(1, "Value of (a + b ) is equal to %d\n", a + b )
end if
else
printf(1, "Value of c is equal to %d\n", c )
end if
Questo produce il seguente risultato:
Value of c is equal to 0
Value of (a + b ) is equal to 30