Ci deve essere un modo per dire dove finisce la condizione e inizia il ramo. Ci sono molti modi diversi per farlo.
In alcune lingue, non ci sono condizionali a tutti , ad esempio in Smalltalk, Sé, neolingua, Io, Ioke, Seph, e Fancy. La ramificazione condizionale viene semplicemente implementata come un metodo normale come qualsiasi altro metodo. Il metodo è implementato su oggetti booleani e viene chiamato su un valore booleano. In questo modo, la condizione è semplicemente il destinatario del metodo e i due rami sono due argomenti, ad esempio in Smalltalk:
aBooleanExpression ifTrue: [23] ifFalse: [42].
Nel caso in cui tu abbia più familiarità con Java, questo equivale al seguente:
aBooleanExpression.ifThenElse(() -> 23, () -> 42);
Nella famiglia di lingue Lisp, la situazione è simile: i condizionali sono solo funzioni normali (in realtà, macro) e il primo argomento è la condizione, il secondo e il terzo argomento sono i rami, quindi sono solo normali argomenti di funzione, e c'è niente di speciale necessario per delimitarli:
(if aBooleanExpression 23 42)
Alcune lingue usano parole chiave come delimitatori, ad esempio Algol, Ada, BASIC, Pascal, Modula-2, Oberon, Oberon-2, Active Oberon, Component Pascal, Zonnon, Modula-3:
IF aBooleanExpression THEN RETURN 23 ELSE RETURN 42;
In Ruby, puoi utilizzare una parola chiave o un separatore di espressioni (punto e virgola o newline):
if a_boolean_expression then 23 else 42 end
if a_boolean_expression; 23 else 42 end
# non-idiomatic, the minimum amount of whitespace required syntactically
if a_boolean_expression
23 else 42 end
# idiomatic, although only the first newline is required syntactically
if a_boolean_expression
23
else
42
end
Go richiede che i rami siano blocchi e non consente espressioni o dichiarazioni, il che rende obbligatorie le parentesi graffe. Pertanto, le parentesi non sono necessarie, anche se è possibile aggiungerle se lo si desidera; Perl6 e Rust sono simili a questo proposito:
if aBooleanExpression { return 23 } else { return 42 }
Alcune lingue usano altri caratteri non alfanumerici per delimitare la condizione, ad esempio Python:
if aBooleanExpression: return 23
else: return 42
La linea di fondo è: è necessario un modo per dire dove finisce la condizione e inizia il ramo. Ci sono molti modi per farlo, le parentesi sono solo una di queste.
THEN
).