Você está na página 1de 6

© E.L.

Favero Introdução a Programação em C 24

Capítulo

3 COMANDO DE REPETIÇÃO FOR

Este capítulo apresenta os comandos de repetição: for(;;), somar e contar com o for;
comandos break e continue.

3.1 O comando FOR


A sintaxe do comando for tem três partes: inicialização, condição de parada e incremento.
Depois dos parênteses do comando for podemos ter um só comando ou vários comandos
delimitados por {}.

for (inicialização; condição; incremento) {boco de comandos}

Abaixo temos a figura de um fluxograma do comando for. Ele executa seu bloco de contexto
delimitado pelas {}; aqui o print está dentro do for; o i=0 é a inicialização e o i=i+1 é o
incremento. A variável i é chamada variável de controle do laço.

Fluxograma do comando for


© E.L.Favero Introdução a Programação em C 25

O comando for permite muitas variações, omitindo ou acrescentando detalhes semânticos


tais como variáveis de controle e os comandos break e continue, que são exploradas com
uma lista de exemplos.

Exemplo 1. Segue abaixo o código C que codifica o exemplo do fluxograma, escrevendo de


0 até 9.

#include <stdio.h>
int main(){
int i;
for ( i=0; i<=10; i++){
printf("i=%d ",i);}}
>>>
i=0 i=1 i=2 i=3 i=4 i=5 i=6 i=7 i=8 i=9

Exemplo 2. For sem a inicialização da variável de controle dentro do for(;;). Podemos iniciar
a variável de controle antes do for, por exemplo,

int i=1;
for (; i<=10 ; i++){
printf("i=%d ",i);}
>>>
i=1 i=2 i=3 i=4 i=5 i=6 i=7 i=8 i=9 i=10

Exemplo 3. For sem o incremento dentro do for(;;). Podemos incrementar dentro do bloco de
comandos.

int i=1;
for (; i<=10 ;){
printf("i=%d ",i);
i++;}
>>>
i=1 i=2 i=3 i=4 i=5 i=6 i=7 i=8 i=9 i=10

Exemplo 4. For sem a condição no for(;;). Podemos incrementar dentro do bloco de


comandos. Sem condição parada roda sempre; também chamado de looping infinito. O
valor vai até um limite de uma constante INT_MAX (+2147483647) da biblioteca <limits.h> e
depois começa de com valores negativos de –INT_MAX+1 (-2147483648) aumentando até
0,1, etc. sempre girando...

int i=1;
for (;;){
printf("i=%d ",i);
i++;}
>>>
i=1 i=2 i=3 ... i=10...i=2147483647 i=-2147483648...i=0 i=1...

Exemplo 4. For sem a condição no for(;;), mas com break. Neste caso podemos utilizar o
comando break para finalizar o for.

int i=1;
for (;;i++){
printf("i=%d ",i);
if (i>=10) break;}
>>>
© E.L.Favero Introdução a Programação em C 26

i=1 i=2 i=3 i=4 i=5 i=6 i=7 i=8 i=9 i=10

Exemplo 5. For com continue. Neste caso o continue permite fazer um for seletivo, por
exemplo, vamos imprimir só valores impares.

#include <stdio.h>
int main(){
int i;
for (i=1;i<=10;i++){
if ((i%2)==0) continue;
printf("i=%d ",i);}}
>>>
i=1 i=3 i=5 i=7 i=9

3.2 Somar com comando for


Somar todos os valores de 0 até 20. Vamos usar uma variável soma para armazenar o valor
da soma.

#include <stdio.h>
int main(){
int i, soma=0;
for (i=1;i<=20;i++){
soma=soma+i;
printf("i=%d ",i);}
printf("\nsoma =%d ",soma);
>>>
i=1 i=2 i=3 i=4 i=5 i=6 i=7 i=8 ... i=16 i=17 i=18 i=19 i=20
soma =210

3.3 Contar com comando for


Contar quantos valores de 0 até 20 são múltiplos de 3. Vamos usar uma variável conta para
armazenar o valor da conta, e vamos utilizar i%3==0 para testar os divisores de três.

#include <stdio.h>
int main(){

int i, conta=0;
for(i=0;i<=20;i++){
if (i%3==0)
conta = conta+1;}
printf("conta=%d",conta);}
>>>
conta=7

3.4 Lista de exercícios (14)


Para cada exercício executar com pelo menos uma entrada de dados (se tem leitura)
ou senão rodar para verificar se a resposta está correta. Nestes exercícios use o
comando de repetição for e suas variações.

E3.1 Ler um número e imprimir todos os pares até o número lido.


#include <stdio.h>
int main(){
int i, x;
© E.L.Favero Introdução a Programação em C 27

printf("digite x:\n");
scanf("%d:",&x);
for (i=0;i<=x;){
printf("%d ",i);
i=i+2;}}
E3.2 Ler um número e imprimir todos os ímpares até o número lido.
E3.3 Ler um número e calcular seu fatorial.
#include <stdio.h>
int main(){
int i, x, fat;
printf("digite x:");
scanf("%d:",&x);
fat=1;
for (i=1;i<=x;i++){fat=fat*i;}
printf("fatorial de %d = %d", x, fat);}
>>>
digite x:6
fatorial de 6 = 120
E3.4 Ler um número e imprimir a multiplicação de todos os pares até o número lido. Se
for lido 7, o valor é 2*4*6=48.
E3.5 Imprima a multiplicação dos múltiplos de 5 entre 1 e 100.
#include <stdio.h>
int main(){
int i,mult=1;
printf("1 ",i);
for (i=1;i<=100;i++){
if ((i%5)==0)
{ mult=mult*i;
printf(" * %d ",i);}}
printf(" = %d",mult);}
>>>
1 * 5 * 10 * 15 * 20 * ... 95 * 100 = 2087976960
E3.6 Imprima a multiplicação dos múltiplos de 13 entre 1 e 100.
E3.7 Ler dois valores x e y, e simular a multiplicação utilizando somente somas e
subtrações. Por exemplo, 4x3=3+3+3+3 que resulta em 12.
#include <stdio.h>
int main(){
int i, x, y, mult;
printf("digite x y:\n");
scanf("%d %d:",&x, &y);
printf("o resultado de %d * %d =",x,y);
for (i=1;i<=x;i++){
mult=mult+y;
printf("+%d ",y);}
printf("\n = %d",mult);}
>>>
digite x y:
4 7
o resultado de 4 * 7 =+7 +7 +7 +7
= 29
E3.8 Imprima a sequência de 9 até 0. Use o comando for.
#include <stdio.h>
int main(){
int i;
for ( i=9; i>0; i--){printf("%d ",i);}}
© E.L.Favero Introdução a Programação em C 28

>>>
9 8 7 6 5 4 3 2 1 0
E3.9 Imprima a tabuada de um número n lido, como segue. Use o comando for.
#include <stdio.h>
int main(){
int i, x ;
printf("digite x:");
scanf("%d:",&x);
printf("tabuada do nro %d\n",x);
for (i=1;i<=10;i++){
printf("%d * %d= %d\n", x, i, x*i);}}
>>>
tabua do n:3
3 x 0 = 0
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12
3 x 5 = 15
3 x 6 = 18
3 x 7 = 21
3 x 8 = 24
3 x 9 = 27
3 x 10 = 30
E3.10 Escreva todos valores de 51 até 100 com quebra linha de 10 em 10 valores.
>>>
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100
E3.11 Imprima a tabela verdade do “and”, &&, use o comando for aninhado para os
valores 0 e 1; na saída escreva os valores 0 e 1 como False e True, ver abaixo.
#include <stdio.h>
int main(){
int i=0, j=0;
printf("tabela verdade do &&:\n")
for(i=0;i<=1;i++){
for(j=0;j<=1;j++){
printf("%d && %d = %d \n", i, j, (i && j));}}}
>>>
tabela verdade do &&:
0 && 0 = 0
0 && 1 = 0
1 && 0 = 0
1 && 1 = 1
E3.12 Imprima a tabela verdade do “or”, ||, use o comando for aninhado para os valores 0
e 1; na saída escreva os valores 0 e 1 como False e True, ver abaixo.
E3.13 Imprima a tabela verdade do “and”, &&, use o comando for aninhado para os
valores 0 e 1; na saída escreva os valores “true” e “false”; Ex. true && false = false”
#include <stdio.h>
/* c não retorna string, só o ponteiro para */
/* aqui true e false são ponteiros */
const char* true = "true ";
const char* false= "false";
© E.L.Favero Introdução a Programação em C 29

int imp(x){
if (x) return true;
else return false;}
int main(){
int i=0, j=0;
printf("tabela verdade do &&:\n");
for(i=0;i<=1;i++){
for(j=0;j<=1;j++){
printf("%s && %s = %s \n", imp(i), imp(j), imp(i &&
j));}}}
>>>
tabela verdade do &&:
false && false = false
false && true = false
true && false = false
true && true = true
E3.14 Imprima a tabela verdade do “not”, ! ; na saída escreva os valores “true” e “false”;
Ex. ! false = true”

3.4.1 Perguntas conceituais (2)


Responda com no mínimo 10 palavras e no máximo 20 palavras:
E3.15 O que faz o comando break?
E3.16 O que faz o comando continue?

Você também pode gostar