Difference between revisions of "Else/es"
m (→If then else: Fixed syntax highlighting) |
|||
(One intermediate revision by the same user not shown) | |||
Line 6: | Line 6: | ||
= [[If]] [[Then|then]] else = | = [[If]] [[Then|then]] else = | ||
− | <syntaxhighlight> | + | |
+ | <syntaxhighlight lang="pascal"> | ||
if (condition) | if (condition) | ||
then true_statement | then true_statement | ||
Line 18: | Line 19: | ||
Si se necesitan dos o más sentencias para true_statement o false_statement, el grupo de sentencias deben ubicarse dentro de un [[Block]] [[Begin|begin]] ... [[End|end]]. | Si se necesitan dos o más sentencias para true_statement o false_statement, el grupo de sentencias deben ubicarse dentro de un [[Block]] [[Begin|begin]] ... [[End|end]]. | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang="pascal"> |
if boolean_condition then | if boolean_condition then | ||
begin | begin | ||
Line 35: | Line 36: | ||
Sin embargo, en el caso de sentencias "if" anidadas, si el ''else'' corresponde al if "interno", no debe haber un punto y coma antes del ''else'', pero si el ''else'' corresponde hacia fuera del else, sí debe haber un punto y coma antes: | Sin embargo, en el caso de sentencias "if" anidadas, si el ''else'' corresponde al if "interno", no debe haber un punto y coma antes del ''else'', pero si el ''else'' corresponde hacia fuera del else, sí debe haber un punto y coma antes: | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang="pascal"> |
if a then //comienza if a | if a then //comienza if a | ||
if b then //comienza if b (si a = True) | if b then //comienza if b (si a = True) | ||
Line 48: | Line 49: | ||
En este caso, "else" corresponde a "if a". | En este caso, "else" corresponde a "if a". | ||
− | <syntaxhighlight> | + | |
+ | <syntaxhighlight lang="pascal"> | ||
if a then //comienza if a | if a then //comienza if a | ||
if b then //comienza if b (si a = True) | if b then //comienza if b (si a = True) | ||
Line 59: | Line 61: | ||
end; | end; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
En este caso, el ''else'' corresponde a "if b". Si esto casusa una ambigüedad, se puede resolver con una sentencia "else" vacía: | En este caso, el ''else'' corresponde a "if b". Si esto casusa una ambigüedad, se puede resolver con una sentencia "else" vacía: | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang="pascal"> |
if a then //comienzo if a | if a then //comienzo if a | ||
if b then //comienzo de if b (si a = True) | if b then //comienzo de if b (si a = True) | ||
Line 73: | Line 76: | ||
end; | end; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
También se puede resolver utilizando bloques begin..end. | También se puede resolver utilizando bloques begin..end. | ||
− | <syntaxhighlight> | + | |
+ | <syntaxhighlight lang="pascal"> | ||
if a then | if a then | ||
begin //comienzo if a (si a = True) | begin //comienzo if a (si a = True) |
Latest revision as of 07:41, 14 January 2020
│
Deutsch (de) │
English (en) │
español (es) │
suomi (fi) │
français (fr) │
русский (ru) │
Else es una keyword que estable que acción hacer si la condición evaluada es false.
If then else
if (condition)
then true_statement
else false_statement;
Se evalúa el valor de condition, si resulta ser verdadero (true), se ejecuta true_statement, caso contrario se ejecuta false_statement. Si el valor del condicional no arroja un valor booleano ocurrirá un error.
Más sentencias en la sentencia "if then else"
Si se necesitan dos o más sentencias para true_statement o false_statement, el grupo de sentencias deben ubicarse dentro de un Block begin ... end.
if boolean_condition then
begin
statement_one;
statement_two;
end
else
begin
statement_three;
statement_four;
end;
Normalmente la sentencia "else" es una excepción especial a la regla que establece que cada sentencia debe ser seguida por un punto y coma. Ni la palabra reservada "else" ni la sentencia que la precede inmediatamente deben ser seguidas por punto y coma. En el ejemplo precedente, la primer sentencia "end" no es seguida por punto y coma pero la última sí.
Sin embargo, en el caso de sentencias "if" anidadas, si el else corresponde al if "interno", no debe haber un punto y coma antes del else, pero si el else corresponde hacia fuera del else, sí debe haber un punto y coma antes:
if a then //comienza if a
if b then //comienza if b (si a = True)
begin
(..) //bloque para if b = True
end; //fin de if b
else //else de if a porque lo precede un sentencia end finalizada en punto y coma
begin
(..) //bloque para if a = False
end;
En este caso, "else" corresponde a "if a".
if a then //comienza if a
if b then //comienza if b (si a = True)
begin
(..) //bloque para if b = True
end
else //else de if b porque lo precede una sentencia que no finaliza en punto y coma
begin
(..) //bloque para if b = False
end;
En este caso, el else corresponde a "if b". Si esto casusa una ambigüedad, se puede resolver con una sentencia "else" vacía:
if a then //comienzo if a
if b then //comienzo de if b (si a = True)
begin
(..) //bloque para if b = True
end
else //else "vacío" de if b
else //else de if a (si a = false)
begin
(..) //bloque para if a = False
end;
También se puede resolver utilizando bloques begin..end.
if a then
begin //comienzo if a (si a = True)
if b then //comienzo de if b (si a = True)
begin
(..) //bloque para if b = True
end;
end //fin de if a (si a = True)
else //else de if a (si a = false)
begin
(..) //bloque para if a = False
end;
Keywords: begin — do — else — end — for — if — repeat — then — until — while