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