Imagine uma situação em que precisamos exibir a mesma palavra na tela, digamos a palavra "HELLO", 10 vezes. O que devemos fazer?
Você pode pegar e escrever o comando 10 vezes cout << "OLÁ";
Mas e se você precisar não 10 vezes, mas 20, 30, 40 vezes? E se 200 vezes? Nesse caso, a cópia levará muito tempo. E se for necessário que o usuário escolha quantas vezes deseja exibir as informações na tela?
Para lidar com essa tarefa, uma construção especial chamada LOOP nos ajudará
Um loop é uma construção algorítmica na qual uma determinada sequência de comandos é repetida várias vezes.
Na linguagem de programação Java, existem dois tipos de loops: um loop com uma variável (for) e um loop com uma condição (while e do...while)
Vamos começar nosso conhecimento dos ciclos do primeiro tipo.
LOOP COM VARIÁVEL OU COM NÚMERO CONHECIDO DE PASSOS (FOR)
Muitas vezes, sabemos o número de repetições de algumas ações ou podemos calcular o número de repetições usando os dados que conhecemos. Algumas linguagens de programação possuem um comando que em russo soa como REPEAT (número de vezes) - ou seja, podemos especificar o número exato de repetições.
É interessante ver como esse ciclo funciona no nível da máquina:
1. uma determinada célula de memória é alocada na memória e o número de repetições é gravado nela,
2. quando o programa executa o corpo do loop uma vez, o conteúdo desta célula (contador) é decrementado em um.
3. a execução do loop termina quando esta célula é zero.
Na linguagem de programação Java, não existe essa construção, mas a construção for.
A forma geral da instrução de loop for é a seguinte:
for (/*expressão1*/; /*expressão2*/; /*expressão3*/ )
{
/*uma instrução ou bloco de instruções - corpo do loop*/;
}
Esta construção exige que
1. alocou explicitamente uma célula de memória, que será um contador, e defina seu valor inicial
2. foi escrita uma condição sob a qual o corpo do ciclo será executado
3. indique como o valor nesta célula será alterado.
Na parte prática, tentaremos exibir a palavra Hello 10 vezes. Nas tarefas a seguir, analisaremos essa construção com mais detalhes.
|
Um loop for é um meio de percorrer ações repetidas. Vamos dar uma olhada em como isso funciona.
Normalmente, as partes de um loop for executam as seguintes etapas:
1. Configurando o valor inicial.
2. Executando um teste de condição para continuar o loop.
3. Execute ações de loop.
4. Atualize o(s) valor(es) usado(s) no teste.
e então as etapas 2-4 são repetidas até que a condição seja satisfeita. Assim que a condição se tornar falsa, o loop termina e a instrução após a instrução do loop for é executada.
Vamos retornar à forma geral da instrução de loop e analisar com mais detalhes todas as partes
for (/*expressão1*/; /*expressão2*/; /*expressão3*/ )
{
/*uma instrução ou bloco de instruções - corpo do loop*/;
}
Expressão 1
responsável por definir o valor inicial da variável do ciclo (contador), termina com ponto e vírgula
Por exemplo :
opção 1) i=0; //a variável do ciclo i recebe o valor inicial igual a zero. Com tal registro,
//variável i deve ser declarada antes do loop
opção 2) int i=0; //variável i pode ser declarada imediatamente no cabeçalho do ciclo, mas
// neste caso, após o loop será apagado da memória
opção 3); //nenhuma inicialização e declaração da variável de ciclo,
// neste caso pode ser declarado antes do loop
Expressão 2
esta é a condição para continuar o loop for, é verificada a veracidade.
i<=10 // o loop será executado enquanto i for menor ou igual a 10.
A condição pode ser qualquer coisa
Expressão 3
altera o valor da variável do contador. Sem esse valor, o loop será considerado infinito
i<=10 // o loop será executado enquanto i for menor ou igual a 10.
A condição pode ser qualquer coisa
Vamos praticar escrevendo o título do loop for
|
Outra característica do registro é que, se houver apenas um operador no corpo do loop, os colchetes podem ser omitidos.
|
Pode haver várias declarações separadas por vírgulas em cada parte do cabeçalho.
Exemplos de títulos:
for ( i = 0; i < 10; i ++ ) { ... }
//título padrão
para ( i = 0, x = 1.; i < 10; i += 2, x *= 0,1 ){ ... }
// neste caso, utilizamos duas variáveis que irão mudar após a execução do corpo do loop - são as variáveis i e x
// variável i muda com o passo 2 - i+=2 - abreviação para i=i+2
// variável x aumenta 0,1 vezes a cada passo x=x*0.1 - abreviado como x*=0.1
|
Todos os programas com um loop for que escrevemos até agora não podem ser chamados de universais. Porque nós mesmos definimos o número de repetições do corpo do loop.
Mas e se o número de repetições depender de algum outro valor? Por exemplo, o próprio usuário deseja definir o número de repetições do ciclo.
O que fazer neste caso?
Tudo é muito simples. Em vez de valores iniciais e finais numéricos, podemos usar quaisquer variáveis que possam ser calculadas ou definidas pelo usuário.
Por exemplo, precisamos exibir os quadrados dos números de 1 a N, onde o valor da variável N é digitado no teclado pelo usuário.
O programa ficará assim:
#include <iostream>
usando namespace std;
principal()
{
int i,N; // em colisão; variável de loop, N - o número máximo para o qual calculamos o quadrado
cin>> N; // insere N do teclado
for ( i = 1; i <= N; i ++) // loop: para todo i de 1 a N - variável i assumirá sequencialmente valores de 1 a N
{
cout << "Kvadrat chisla "<<i<<" corvo " <<i*i<<"\n"; // Emitindo o quadrado de um número em um formato específico e movendo para uma nova linha
}
}
Ao entrar no loop, a instrução i = 1 é executada e, em seguida, a variável i é incrementada em um (i ++) a cada etapa. O loop é executado enquanto a condição i <= N for verdadeira. No corpo do loop, a única instrução de saída imprime o próprio número e seu quadrado na tela de acordo com o formato especificado.
Para elevar ao quadrado ou outros expoentes baixos, é melhor usar a multiplicação.
Execute o programa e veja o resultado de seu trabalho com diferentes valores da variável N.
|