É preciso haver uma maneira de dizer onde a condição termina e o ramo começa. Existem muitas maneiras diferentes de fazer isso.
Em algumas línguas, não há condicionais em tudo , por exemplo, em Smalltalk, Auto, Novilíngua, Io, Ioke, Seph e Fancy. A ramificação condicional é simplesmente implementada como um método normal, como qualquer outro método. O método é implementado em objetos booleanos e é chamado em um booleano. Dessa forma, a condição é simplesmente o receptor do método, e os dois ramos são dois argumentos, por exemplo, em Smalltalk:
aBooleanExpression ifTrue: [23] ifFalse: [42].
Caso você esteja mais familiarizado com Java, isso é equivalente ao seguinte:
aBooleanExpression.ifThenElse(() -> 23, () -> 42);
Na família de linguagens Lisp, a situação é semelhante: condicionais são apenas funções normais (na verdade, macros) e o primeiro argumento é a condição, o segundo e o terceiro argumentos são os ramos, portanto, são apenas argumentos de funções normais, e há nada de especial é necessário para delimitá-los:
(if aBooleanExpression 23 42)
Alguns idiomas usam palavras-chave como delimitadores, por exemplo, Algol, Ada, BASIC, Pascal, Modula-2, Oberon, Oberon-2, Oberon ativo, Componente Pascal, Zonnon, Modula-3:
IF aBooleanExpression THEN RETURN 23 ELSE RETURN 42;
No Ruby, você pode usar uma palavra-chave ou um separador de expressões (ponto-e-vírgula ou nova linha):
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
O Go requer que as ramificações sejam blocos e não permite expressões ou declarações, o que torna obrigatórias as chaves. Portanto, parênteses não são necessários, embora você possa adicioná-los, se quiser; Perl6 e Rust são semelhantes a este respeito:
if aBooleanExpression { return 23 } else { return 42 }
Algumas linguagens usam outros caracteres não alfanuméricos para delimitar a condição, por exemplo, Python:
if aBooleanExpression: return 23
else: return 42
A linha inferior é: você precisa de alguma maneira de dizer onde a condição termina e o ramo começa. Existem muitas maneiras de fazê-lo, os parênteses são apenas uma delas.
THEN
).