Como o enderland já disse, você está assumindo que você só tem um "retorno" como ação e que pode marcar esse "retorno" no final da condição. Eu gostaria de dar mais detalhes sobre por que isso não será bem sucedido.
Não sei quais são seus idiomas preferidos, mas há muito tempo estou codificando em C. Há vários padrões de codificação em torno dos quais o objetivo é evitar alguns erros de codificação padrão, não permitindo construções de código que sejam propensas a erros, seja na codificação inicial ou durante a manutenção posterior. Eu estou mais familiarizado com MISRA-C, mas há outros, e geralmente todos eles têm regras semelhantes, porque eles estão resolvendo os mesmos problemas no mesmo idioma.
Um erro popular que os padrões de codificação geralmente abordam é este pequeno problema: -
if (x == 10)
do_something();
do_something_else();
Isso não faz o que você acha que faz. No que diz respeito a C, se x é 10, você chama do_something()
, mas do_something_else()
é chamado independentemente do valor de x . Somente a ação imediatamente após a instrução "if" é condicional. Isso pode ser o que o codificador pretendia, em cujo caso há uma armadilha potencial para os mantenedores; ou pode não ser o que o programador pretendia, caso em que há um erro. É uma pergunta popular sobre entrevista.
A solução nos padrões de codificação é obrigar chaves em torno de todas as ações condicionais, mesmo que sejam de linha única. Nós agora conseguimos
if (x == 10)
{
do_something();
do_something_else();
}
ou
if (x == 10)
{
do_something();
}
do_something_else();
e agora funciona corretamente e é claro para os mantenedores.
Você notará que isso é totalmente incompatível com seu formato de estilo de tabela.
Algumas outras linguagens (por exemplo, Python) analisaram esse problema e decidiram que, como os codificadores estavam usando espaço em branco para tornar o layout claro, seria uma boa ideia usar espaços em branco em vez de chaves. Então, em Python,
if x == 10:
do_something()
do_something_else()
faz as chamadas para do_something()
e do_something_else()
condicionais em x == 10, enquanto
if x == 10:
do_something()
do_something_else()
significa que apenas do_something()
é condicional em x e do_something_else()
é sempre chamado.
É um conceito válido e você encontrará alguns idiomas para usá-lo. (Eu vi pela primeira vez no Occam2, muito tempo atrás.) Novamente, você pode ver facilmente que o formato de estilo de tabela é incompatível com o idioma.