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