Вы находитесь на странице: 1из 35

ITERAÇÕES

Vandecia Fernandes
Referências: Herbert Schildt. C completo e total, 3a Edição
§ Iterações
§ For
§ While
§ Do...While

§ Desvios incondicionais

2
§ Em C, bem como em toda linguagem moldada sob os
princípios da PROGRAMAÇÃO ESTRUTURADA, o fluxo de
execução de um programa é controlado:

§ SEQÜÊNCIA e BLOCOS de comandos


§ DESVIOS
§ CONDICIONAIS
§ INCONDICIONAIS
§ ITERAÇÕES (LAÇOS)
3
§ Os laços permitem que um conjunto de instruções seja
executado até que ocorra uma certa condição.

§ Essa condição pode ser pré-definida (como no laço for) ou


com o final em aberto (como nos laços while e do ...while).

4
5
§ Em C, há três comandos de ITERAÇÃO ou LAÇOS:
§ for
§ while
§ do ... while

6
§ O comando for permite que um certo trecho de
programa seja executado um determinado
número de vezes.

§ Sintaxe:
for (INICIALIZAÇÃO; CONDIÇÃO; INC/DEC){
COMANDO;
}

7
§ INICIALIZAÇÃO - geralmente um comando de atribuição para
colocar um valor na variável de controle do laço;

§ CONDIÇÃO - é uma expressão relacional que determina


quando o laço acaba;

§ INCREMENTO/DECREMENTO - define como a variável de


controle do laço varia cada vez que o laço é repetido;

§ COMANDO - um único comando ou um bloco de comandos


executados enquanto a CONDIÇÃO é verdadeira. 8
§ Exemplos:

int x; int x;
for (x=1; x<=100; x++){ for (x=100; x>=65; x-=5){
printf("%d",x);
printf("%d",x); }
}

9
§ Operador vírgula: o uso do operador vírgula permite que
duas ou mais variáveis controlem o laço:

§ Exemplo:
int x, y;
for ( x = 0 , y = 100 ; x < y ; x ++ , y -= x )
printf("%d, %d", x,y);

10
§ Laço infinito:
§ Nenhuma das três expressões que formam um laço for é
obrigatória. Assim, você pode criar um laço infinito conforme
exemplo abaixo:

§ Exemplo:
for (; ;) {
printf( “oi”);
}
11
§ Laço sem corpo:
§ Um comando pode ser vazio. Isso significa que o corpo do
laço for (ou qualquer outro laço) também pode ser vazio.

§ Exemplo:
for (t = 0 ; t < algum valor ;t++ ) ;

12
§ Exemplo 1: Programa para calcular o fatorial de um numero:

#include <stdio.h>
int main(void) {
int fat,num;
printf(“Digite o número:");
scanf("%d",&num);
for(fat = 1;num > 1;num = num - 1)
fat = fat * num;
printf("Fatorial: %d",fat);
return 0;
}

13
§ Outro comando para iterações em C é o comando while;

§ Sintaxe:
while ( CONDIÇÃO ) {
COMANDO; }

§ COMANDO é executado enquanto a CONDIÇÃO for


verdadeira ( diferente de zero ); quando for falsa, o
controle passa para a linha após COMANDO. 14
§ Laço infinito :

while ( 1 )
print(“laço infinito”);

15
§Laço sem corpo:

while ( p-- ) ;

16
§ Exemplo 2: whileaninhado:
#include <stdio.h>
int main( ){
int linha, coluna;
linha = 1;
while (linha < 8) {
coluna = 1;
while (coluna < linha) {
printf("-" );
coluna += 1;
}
printf( "\n" );
linha += 1;
}
return 0;
}
17
§ Ao contrário dos laços for e while, que testam a condição
do laço no começo, o laço do ... while verifica a condição
ao final do laço.

§ Isso significa que um laço do ... while SEMPRE SERÁ


EXECUTADO AO MENOS UMAVEZ.

18
§ Sintaxe:
do {
COMANDO;
}while( CONDIÇÃO );

§ O laço do ... while repete até que a CONDIÇÃO se torne


falsa.

19
§ Laço infinito :

do {
printf( " Laço infinito \n” );
} while ( 1 ) ;

20
§ Laço sem corpo:

do {
} while ( p-- );

21
§ Exemplo:

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


float nota1=0, nota2=0,media=0;
int resp;
do {
printf("Digite a primeira nota: ");
scanf("%f",&nota1);
printf("Digite a segunda nota: ");
scanf("%f",&nota2);
media = (nota1 + nota2)/2;
printf("Media do aluno = %f\n",media);
printf("Digite 1 para continuar ou qualquer numero para sair\n");
scanf("%d", &resp);
}while (resp==1);
return 0;
} 22
§ O comando for deve ser usado sempre que:

§ souber mos exatamente quantas vezes o laço


deve ser repetido;
§ o teste deve ser feito antes da execução de um
bloco de comandos;

23
§ O comando while deve ser usado sempreque:

§ não soubermos exatamente quantas vezes o


laço deve ser repetido;
§ o teste deve ser feito antes de iniciar a execução
de um bloco de comandos;

24
§ O comando do-while deve ser usado sempre que:

§ não souber mos exatamente quantas vezes o


laço deve ser repetido;
§ o teste deve ser feito depois da execução de um
bloco de comandos;
§ o bloco de comandos deve se executado pelo
menos 1 vez;
25
§ return
§ break
§ continue
§ goto

26
§ Comando usado para retornar de uma função.
§ É um comando de desvio porque faz com que a execução
retorne (salte de volta) ao ponto em que a chamada à
função foi feita.

§ Sintaxe:
return EXPRESSÃO;

27
§ Se return tem um valor associado a ele, esse valor é o valor
de retorno da função.

§ Se nenhum valor de retorno é especificado, assume-se que


apenas lixo é retornado (alguns compiladores irão
automaticamente retornar 0 se nenhum valor for
especificado, mas não conte comisso).

28
§ O comando break tem dois usos:

§ terminar um case em um comando switch

§ forçar uma finalização de um laço, evitando o teste


condicional normal do laço. Quando o comando break é
encontrado dentro de um laço, o laço é imediatamente
terminado e o controle do programa retorna ao comando
seguinte ao laço.
29
§ Exemplo:
for (;;){
printf("Digite um numero inteiro:");
scanf("%d",&n);

if (n == 7){
printf("Saindo do loop...\n");
break; //força a saída do loop
}
printf("Numero:%d\n",n);
}
30
§ O comando continue trabalha de uma forma pouco
parecida com a do comando break. Porém, em vez de
forçar a finalização, o comando continue força que ocorra a
próxima iteração do laço, pulando qualquer código
intermediário.

§ Para o laço for, o comando continue faz com que o


incremento e o teste condicional sejam executados.

31
§ Exemplo:

for(i = 1;i < 10;i++){


if (i % 2 == 0) { //se i for par não faz nada epula para a próxima iteração
continue;
}
else { // senão imprime os ímpares
printf("Numero: %d \n",i );
}

32
§ Na programação estruturada, não há nenhuma situação que
necessite do goto.
§ No entanto, o goto é uma conveniência que, se usada com
prudência,pode ser uma vantagem em certas situações.

§ Sintaxe:
goto RÓTULO;
... RÓTULO:
33
EXERCÍCIOS

34
1) Elaborar um programa que apresente o somatório dos
valores pares existentes na faixa de 1 até 500.

2) Crie um programa para apresentar os quadrados do


números inteiros de 1 a 100.

35

Вам также может понравиться