Precisa haver alguma maneira de dizer onde a condição termina e o ramo começa. Existem muitas maneiras diferentes de fazer isso.
Em alguns idiomas, não há condicionais , por exemplo em Smalltalk, Self, Newspeak, 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. Desse modo, 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 o Java, isso é equivalente ao seguinte:
aBooleanExpression.ifThenElse(() -> 23, () -> 42);
Na família de linguagens Lisp, a situação é similar: condicionais são apenas funções normais (na verdade, macros) e o primeiro argumento é a condição, o segundo e terceiro são os ramos, então são apenas argumentos normais de função, e não há nada de especial necessário para delimitá-los:
(if aBooleanExpression 23 42)
Algumas linguagens 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;
Em Ruby, você pode usar uma palavra-chave ou um separador de expressão (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
Ir exige que as ramificações sejam blocos e não permite expressões ou instruções, o que torna as chaves obrigatórias. 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 }
Alguns idiomas 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 algum modo de dizer onde a condição termina e o ramo começa. Existem muitas maneiras de fazer isso, parênteses são apenas um deles.