-
Notifications
You must be signed in to change notification settings - Fork 24
Laços de repetição
As declarações enquanto
de Delégua operam de maneira semelhante à maioria das linguagens. O laço de repetição enquanto
funciona com uma condição e um bloco de escopo, com o bloco de escopo continuando a executar enquanto a condição é avaliada como verdadeira. A verificação da verdade é feita antes da execução do bloco de escopo, o que significa que nenhuma execução do bloco de escopo é garantida.
// Laço de repetição infinito
enquanto verdadeiro {
escreva("sim");
}
Em Delégua, a instrução fazer ... enquanto
atua de maneira semelhante à maioria de outras linguagens de programação: a palavra-chave fazer
é declarada, seguida por um bloco de escopo com as instruções a serem repetidas, uma palavra-chave enquanto
e, em seguida, uma condição entre parênteses.
Diferentemente de instruções enquanto
, o teste da condição para decidir se o bloco de escopo continua a executar é feito após cada execução do bloco de escopo, o que significa que é garantido que o bloco de escopo execute pelo menos uma vez.
// 'sim' é escrito uma vez
fazer {
escreva("sim")
} enquanto falso
// Escreve números de 0-4
var i = 0;
fazer {
escreva(i);
i = i + 1;
} enquanto i < 5
Declarações para
em Delégua usam 4 elementos: um inicializador, uma condição, um passo e um bloco de escopo. Qualquer um deles pode ficar em branco.
O inicializador é a primeira instrução executada no comando para
, e normalmente é usada para definir um ponto inicial da execução, como declarar a variável a ser usada nos demais argumentos. Logo após, é executada a condição que decide se o bloco de escopo continua a executar ou não, da mesma forma que um laço de repetição enquanto
, cuja condição passada como argumento decide se um bloco de escopo será executado. Por último, a etapa a ser executada após o bloco de escopo durante cada laço de repetição. Esta última etapa geralmente é um incremento, decremento ou atribuição de variável.
A instrução para
obtém o inicializador, a condição de parada e a etapa entre parênteses, separados por ponto e vírgula, e, em seguida, uma instrução de bloco de escopo que contém a série de passos a serem repetidos.
// Escreva os números inteiros de 0-4
// Exemplo com inicializador, condição e etapa
para var i = 0; i < 5; i = i + 1 {
// bloco de escopo
escreva(i);
}
// Exemplo com inicializador e etapa após bloco omitidos.
// Executa infinitamente devido à condição ser sempre verdadeira.
// Parênteses são opcionais, e neste caso eles aumentam a legibilidade do código.
para (; verdadeiro; ) {
escreva("sim");
}
para cada
é uma variação da instrução para
que visita cada elemento de um vetor e, para cada elemento visitado, executa o laço de repetição com este elemento definido em uma variável. Por exemplo:
var a = [1, 2, 3]
para cada elemento de a {
escreva(elemento) // Saída:
// 1
// 2
// 3
}
Ou então:
var a = [1, 2, 3]
para cada elemento em a {
escreva(elemento) // Saída:
// 1
// 2
// 3
}
Para todos os blocos de escopo de laços de repetição (ou seja, instruções enquanto
, fazer
e para
), é possível a interrupção da execução do bloco de escopo por meio da palavra reservada sustar
. Por exemplo:
var contador = 0;
enquanto verdadeiro {
escreva(contador);
contador += 1;
se contador >= 10 {
sustar;
}
}
Por retrocompatibilidade, Delégua também aceita a palavra pausa
como um sinônimo de sustar
, mas isso pode mudar futuramente, conforme explicado aqui.
A palavra reservada continua
permite a execução parcial de um bloco de escopo de um laço de repetição. Por exemplo:
para var i = 0; i < 5; i = i + 1 {
se i == 3 {
continua
}
escreva(i)
}
O resultado será:
0
1
2
4
- Estruturas de dados elementares
- Entrada e saída
- Operadores
- Condicionais
- Laços de repetição
- Funções
- Funções nativas
- Escopos
- Exceções
- Tipos e Inferência de variáveis
- Orientação a objetos
- Decoradores
- Tradução para outras linguagens
- Compilação para código de máquina
- Dialetos suportados em Delégua
- Implementando Delégua na sua aplicação
- Estruturas de dados elementares
- Entrada e saída
- Operadores
- Condicionais
- Laços de repetição
- Funções
- Funções nativas
- Escopos
- Exceções
- Tipos e Inferência de variáveis
- Orientação a objetos
- Decoradores
- Tradução para outras linguagens
- Compilação para código de máquina
- Dialetos suportados em Delégua
- Implementando Delégua na sua aplicação