if ... elsif ... else ... endif Declarações

A declaração if

A if declaração consiste em uma expressão booleana seguida por uma ou mais declarações.

Sintaxe

A sintaxe da instrução if é -

if expression then
   -- Statements will execute if the expression is true
end if

Se a expressão booleana for avaliada como verdadeira, o bloco de código dentro da instrução if será executado. Se for avaliado como falso, o primeiro conjunto de código após o final da instrução if será executado.

Exemplo

#!/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

Isso produz o seguinte resultado -

This is true if statement!

A declaração if ... else

A if declaração pode ser seguida por um opcional else instrução, que é executada quando a expressão booleana é falsa.

Sintaxe

A sintaxe da instrução if ... else é a seguinte -

if expression then
   -- Statements will execute if the expression is true
else
   -- Statements will execute if the expression is false
end if

Exemplo

#!/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

Isso produz o seguinte resultado -

This is inside if statement!

A instrução if ... elsif ... else

A if declaração pode ser seguida por qualquer número de opcionais elsif...else , que é muito útil para testar várias condições usando uma única instrução if ... elsif.

Sintaxe

A sintaxe da instrução if ... elsif ... else é a seguinte -

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

Exemplo

#!/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

Isso produz o seguinte resultado -

Value of (a + b ) is  30

A declaração if ... label ... then

A if declaração pode ter uma cláusula de rótulo antes do primeiro thenpalavra-chave. Observe que umelsif cláusula não pode ter um rótulo.

Um if… lable é usado apenas para nomear o bloco if e os nomes de rótulo devem ser strings constantes entre aspas duplas com uma ou várias palavras. A palavra-chave do rótulo diferencia maiúsculas de minúsculas e deve ser escrita comolabel.

Sintaxe

A sintaxe da cláusula label é a seguinte -

if expression label "Label Name" then
   -- Executes when the boolean expression  is true
end if

Exemplo

#!/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

Isso produz o seguinte resultado -

Value of (a + b ) is  30

Aninhado if ... else Statement

É sempre legal aninhar if…elseafirmações. Isso significa que você pode ter uma instrução if-else dentro de outra instrução if-else.

Sintaxe

A sintaxe de aninhado if ... else é a seguinte -

if expression1 then
    -- Executes when the boolean expression1  is true
   if expression2 then
       -- Executes when the boolean expression2  is true  
   end if
end if

Exemplo

#!/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

Isso produz o seguinte resultado -

Value of c is equal to 0
Value of (a + b ) is  equal to 30