(Java) Loops. Loop com parâmetro (for)


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.