Fluxo de Controle
O fluxo de controle do Klar é rigoroso por design, visando eliminar ambiguidade em estruturas aninhadas.
As Duas Regras de Ouro do Fluxo Klar:
- Sem Abreviações: Blocos sempre usam
{ }. Instruçõesifde linha única sem chaves são proibidas. - Terminação Explícita: Cadeias condicionais devem sempre terminar com a palavra-chave
afterall.
if / otherwise / afterall
if Básico
Mesmo um if simples requer o terminador afterall;.
if (condition) {
// código a executar
} afterall;
if com Alternativa (Else)
No Klar, o que outras linguagens chamam de else é tratado pelo bloco afterall.
if (condition) {
// código
} afterall {
// lógica alternativa
}
A Cláusula otherwise (Else-if)
A palavra-chave otherwise requer uma cláusula because. Isso força o desenvolvedor a documentar a intenção do ramo alternativo diretamente na sintaxe.
if (score > 90) {
println("A");
} otherwise (score > 80) because "high performer threshold" {
println("B");
} afterall {
println("F");
}
Regras de Sintaxe
because "..."é obrigatório em todo blocootherwise.afterallé obrigatório para fechar a cadeiaif.- O corpo de
afterall { ... }é opcional, mas a palavra-chave (ou ponto e vírgulaafterall;) não é.
Laços
while
Klar suporta laços while padrão. Ao contrário da cadeia condicional, while não requer um terminador especial além da chave de fechamento.
while (condition) {
// lógica de repetição
}
Observações sobre Laços:
- Chaves
{}são obrigatórias mesmo para instruções únicas. whilenão usaafterall.
Regras de Sintaxe
- Laços
for - Laços
foreach/ baseados em iterador switch/ Correspondência de padrões
Todos estes não existem no Klar.