Module: ciclos. Loop com parâmetro (for)


Problem

10/17

Cabeçalho do loop for - repetindo N vezes

Theory Click to read/hide

Repetir N vezes

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 é inserido no teclado por o 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; for ( i = 1; i <= N; i ++) // loop: para todo i de 1 a N. A variável i assumirá sequencialmente os valores de 1 a N { cout << "Número quadrado "<<i<<" é" <<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 a cada etapa (i ++ ). 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.

Problem

Execute o programa para execução, veja o resultado de seu trabalho com diferentes valores da variável N.

Analise a saída.

Observe que quando N=0 (teste #4) o programa não gera nada, porque a condição i <= N é imediatamente falsa na primeira vez que o loop é executado ( 1<=0 é uma condição falsa), então o corpo do loop nunca é executado!