Para loop
O loop for é uma estrutura de controle em programação na qual o número máximo de iterações pode ser indicado antecipadamente.
Elementos de loop
- Variável de controle : praticamente um mandato imposto pelo uso comum é usar a letra i Iterator como variável de controle, ou seus sucessores no caso de loops aninhados. O uso dessa letra enigmática, talvez à primeira vista, é, no entanto, uma excelente maneira de adicionar legibilidade ao código devido ao seu uso extensivo. Como os loops aninhados raramente excedem três dimensões (por uma simples questão de explosão exponencial), as letras i, j ek são geralmente as únicas envolvidas nesse uso. Em C é definido no primeiro parâmetro da instrução junto com a inicialização (opcional).
- Inicialização da variável de controle : em pseudolinguagem solicita-se torná-la explícita (é a seção := InitialValue ), porém, outras linguagens mais permissivas como C não a exigem de forma obrigatória. No entanto, a prática de usar variáveis de controle que não são inicializadas no loop não é recomendada para legibilidade do código. Em C ela é definida no primeiro parâmetro da malha junto com a variável de controle.
- Condição de controle : em pseudolinguagem é representada pelo valor final que a variável de controle pode assumir (a seção A FinalValue ). Em C é o segundo parâmetro e pode ser qualquer condição (a variável de controle nem é necessária, embora, novamente, isso não seja considerado uma boa prática).
- Increment : em pseudolinguagem, o valor 1 é assumido por padrão, embora possa ser explicitado por meio da frase PASO = ValorPaso qualquer inteiro (leia-se bem inteiro, ou seja, tecnicamente podemos decrementar). Em C é o último parâmetro.
- Body : é o que será feito em cada iteração, podendo ser uma ou mais instruções. Na pseudolinguagem há a restrição de não poder alterar o valor da variável de controle; isso não é exigido em C, mas não é considerado uma boa prática.
Usa
Seu principal uso é orientado a vetores , podendo modificar, adicionar, excluir ou consultar dados encontrados de acordo com o índice. Para este último, uma condição mínima do vetor é que ele seja ordenado, pois se for feita uma tentativa de leitura de dados inexistentes, isso gera um erro de programação .
Em pseudolinguagem
A principal diferença entre um loop FOR e os loops WHILE AND REPEAT é que pode ser determinado no início do loop quantas vezes o loop será iterado, o que geralmente pode levar à otimização do código pelos compiladores. Condicionais, juntamente com loops, constituem os pilares da programação estruturada , e seu uso é uma evolução de uma instrução em linguagem assembly que executava a próxima linha ou não dependendo do valor de uma condição.
O loop FOR tornou-se o loop mais utilizado na programação, pois com a evolução das linguagens a maioria das condições finais
É o mesmo dizer:
FOR i=0 para NumberRecords(tabela) - 1, STEP = 1 PróximoRegistro(tabela) DoSomething(CurrentItem(tabela)) FIM PARA
Outro uso comum é usar loops FOR para percorrer vetores de duas ou mais dimensões, caso em que essas iterações são aninhadas.
PSEUDO IDIOMA
Vetor a[3][4][2]. // Estamos indicando um vetor de 3 dimensões e 24 elementos no total.
PARA i:= 0 A 2 DO
PARA j:= 0 A 3 DO
PARA k:= 0 A 1 DO
Faça Algo(a[i][j][k])
FIM PARA
FIM PARA
FIM PARA
Exemplo de pseudocódigo
Para ControlVariable := StartValue TO EndValue, STEP = Increment
Instruções FIM para
onde ControlVariable , StartValue , EndValue e Step são números inteiros. A(s) instrução(ões) no corpo serão executadas (EndValue - InitialValue + 1) vezes, ou seja, vai de InitialValue a EndValue inclusive.
Exemplo em C++
#include <iostream>
#include <cone.h>
usando o namespace std;
intmain(){
int vetor[10];
for(int i=0; i<10; i++){
vetor[i] = i;
cout<<i<<endl;
}
system("PAUSA");
retornar 0;
}
Na definição for , temos que a variável de controle i é inicializada com valor 0, então é dada a condição de controle que deve ser falsa durante sua execução, para completar o laço; e finalmente, temos o incrementador em uma unidade.
Se, por exemplo, na condição colocarmos i < 11, então o laço for será executado a partir de [0...10], que, ao tentar acessar o elemento vetor[10], gerará um erro, pois o vetor (por definição ) vai de [0..(n-1)].
Qualquer um dos componentes entre parênteses pode ser omitido, mas os separadores de ponto e vírgula devem sempre aparecer. O resultado é um loop infinito.
Exemplo acima escrito em léxico
tarefa
{
objetos vector[10], i são quantidades
variando i de 0 a 9 faça
copie i para vetor[i]
}
Para cada loop
Este loop é uma evolução do conceito de loop For em algumas linguagens. Ele é usado para percorrer estruturas de dados repetitivas de maneira mais simples e ágil. O loop For Each pode ser descrito genericamente (em pseudolinguagem) da seguinte forma:
PARA CADA elemento do tipo IN set DO Corpo FIM PARA CADA
- Elemento : é o nome da variável ou objeto que recebe o elemento iterado no corpo do loop.
- Data Type : é o tipo de variável ou a classe à qual pertence o objeto a ser iterado.
- Set : é a estrutura de dados sobre a qual você deseja iterar. O uso mais típico é com vetores ou -na programação orientada a objetos- classes do tipo Collection.
- Body : é o que será feito em cada iteração, podendo ser uma ou mais instruções. Embora nenhuma obrigação seja imposta a esse respeito, o mais comum é que neste Body haja alguma operação no elemento iterado.
Uma das características importantes dos computadores que podem ser exploradas é justamente sua capacidade de repetir a execução de sequências de instruções em alta velocidade e com alto grau de confiabilidade. Para esses propósitos, estruturas de controle iterativas são definidas com precisão em linguagens de programação. O objetivo dessas estruturas é permitir a expressão da repetição de uma sequência de instruções, essas estruturas são chamadas de ciclo, laço ou laço.
Resumo 1 Estruturas de controle iterativas 2 A instrução while 3 A instrução do/while 4 A estrutura de controle for 5 Estudo de caso 5.1 GCF() 5.2 QtyDigits() 5.3 Factorial() 6 Loops aninhados 7 Fontes Estruturas de controle iterativas na vida Em uma base diária, existem situações que são frequentemente resolvidas executando uma determinada sequência de etapas que podem ser repetidas muitas vezes, por exemplo:
O processo que seguimos para comer, enquanto a comida não está terminada. O processo de inserção de moedas, até que o valor necessário seja pago. As operações que realizamos para ligar por telefone, enquanto a comunicação não é alcançada. Como pode ser visto, são algoritmos que são feitos diariamente, mas têm a particularidade de que a execução de algumas de suas etapas pode ser repetida muitas vezes, desde que o objetivo estabelecido não seja alcançado. Este tipo de algoritmo é conhecido como algoritmos iterativos ou repetitivos. Em C#, as instruções while, do/while e for permitem que você execute iterações, loops ou ciclos. Em cada caso, um bloco de instruções é executado enquanto a condição avaliada for verdadeira. Ressalta-se que qualquer uma das 3 instruções cumpre o mesmo objetivo, que é executar uma sequência de passos, mais de uma vez.
A instrução while A instrução while tem a seguinte sintaxe:
WhileStatement.JPG
A semântica da declaração é a seguinte:
<condição>. Ela é representada por uma expressão booleana e enquanto ela for cumprida, o ciclo será executado. [Bloco de instruções] O bloco de instruções pode ser formado por uma ou várias instruções e é o conjunto de passos que serão executados em cada iteração do ciclo. Para melhor compreensão, sua representação é mostrada em um diagrama de atividades.
DiagramWhile.JPG
Essa estrutura de controle permite repetir ou iterar o [Bloco de Instruções] enquanto a condição for verdadeira, ou seja, essas iterações terminarão quando a condição for falsa e a próxima instrução após o while poderá ser executada.
É válido ressaltar que nesta instrução a condição é avaliada no início do ciclo, portanto se a primeira vez que a condição for avaliada for falsa, o ciclo não será executado.
A instrução do/while A estrutura de controle do/while é outra instrução de iteração na qual a condição é avaliada pela primeira vez após a execução do [Statement Block] e tem a seguinte sintaxe:
DoWhileStatement.JPG
Sua semântica é a mesma do comando while e sua representação em um diagrama de atividades é a seguinte:
DiagramDoWhile.JPG
Nesta estrutura repetitiva, o bloco de instruções é sempre executado pelo menos uma vez porque a condição é avaliada por último. Uma vez realizada a avaliação, se o resultado for verdadeiro, o [Bloco de instruções] é executado novamente, caso contrário são executadas as instruções a seguir, saindo do ciclo. A funcionalidade deste método será a mesma do exemplo while. A única diferença é a forma como o loop é controlado. Na prática, você descobrirá que a instrução while é usada com mais frequência do que a instrução do – while. Escolher uma instrução sobre a outra é uma escolha pessoal. Um aspecto muito importante a se ter em mente em loops condicionais é a necessidade de contemplar pelo menos um bloco de instruções dentro do bloco de instruções, o que de alguma forma altera – em algum momento – o resultado da expressão booleana. A explicação é simplesmente dada pelo fato de que se esta instrução não existisse uma vez que o loop fosse inserido, ela nunca terminaria, então cairia em um loop infinito.
A estrutura de controle para Os processos iterativos que vimos até agora terminam com uma condição. Em muitas situações as iterações são realizadas um certo número de vezes, muitos autores as chamam de ciclos por contagem porque se sabe de antemão quantas vezes o processo que se repete será feito. Nesse tipo de iteração, sempre é necessária uma variável para acompanhar quantas vezes o processo se repete, razão pela qual também são conhecidos como ciclos com variável de controle. Um dos ciclos mais conhecidos e mais utilizados na maioria das linguagens de programação é o comando for, que normalmente é controlado por um contador ou variável de controle e possui a seguinte sintaxe:
Instrução para.JPG
A semântica da declaração é a seguinte:
<instruções 1>. Ele será executado apenas uma vez no início do ciclo, inicializações e declarações de variáveis geralmente são realizadas, pois, como dito anteriormente, ele é executado apenas uma vez. Se você deseja executar ou executar mais de uma instrução neste momento, essas instruções devem ser separadas por vírgulas ("."). <expressão>. Ele é avaliado em cada iteração e dependendo do valor que retorna, dependerá se o ciclo continua executando (valor da expressão true) ou não (false). Observe que se nada for colocado nesta parte, o ciclo tomará o valor da expressão como verdadeiro, portanto, em princípio, o ciclo pode ser repetido infinitamente. <instruções 2>. É sempre executado em cada ciclo ao final da execução de todas as instruções que pertencem ao laço for em questão. Geralmente pode conter alguma atualização para as variáveis de controle. Analogamente às <instruções 1>, se você deseja executar mais de uma instrução neste momento, elas devem ser separadas por vírgulas. Observe que é obrigatório separar cada termo que compõe a instrução for usando um ponto e vírgula (;), caso contrário, o compilador exibirá um erro de tipo semântico. Reitere que <instrução 1> é executada apenas uma vez no início, que <instrução 2> é a que geralmente é usada para modificar a variável de controle embora também possa ser modificada no loop, e que <expressão> é a que garante a finitude do ciclo, o for será executado enquanto <expression> for avaliada e assumir o valor true.
Veja também
- Vetores
- C
- Linguagem de programação
- estruturas de controle
- Loop (programação)
- loop while
- repetir loop
- ciclo infinito
- Teorema do programa estruturado
- Programação Estruturada