Linguagem C – Estrutura de Repetição Automação Industrial Informática Básica Profa. Ms. Viviane Guimarães Ribeiro Prof. João Sanches
Estruturas de Repetição Essas estruturas são utilizadas para que uma parte de seu programa possa ser repetida n vezes sem a necessidade de reescrevê-lo. Também são conhecidas com LOOP ou laços. Existem 3 estruturas de repetição na linguagem C: for; while; do... while.
for A idéia básica do comando for é que você execute um conjunto de comandos, um número fixo de vezes, enquanto uma variável de controle é incrementada ou decrementada a cada passagem pelo loop.
for Fluxograma
for Pseudocódigo Para <var> de <início> até <fim> incr de <inc> faça <comando 1>; Fim_para
for Linguagem C for ( <var> = <início>; <fim> ; <inc> ) { <comando 1>; }
for Observe que dentro dos parênteses tem 3 expressões separadas por ponto-e-virgula. A primeira expressão é, normalmente, a inicialização da variável de controle do for. A segunda expressão é um teste que, enquanto o resultado for verdadeiro, reflete em continuação do laço. A terceira expressão é, normalmente, o incremento ou decremento da variável de controle do for.
for Exemplo 1: #include <stdio.h> main() { int i; for(i=1; i<=10; i++){ printf(“%d \n”,i); }
for Exemplo 2: #include <stdio.h> main() { int i,j; for(i=1; i<=10; i++){ for(j=1; j<=10; j++){ printf(“\n %d x %d = %d”,i,j,i*j); }
for Veja que o laço externo executa 10 vezes, enquanto o laço interno executa 10 vezes para cada passagem do laço externo, totalizando assim, 10x10 = 100 vezes.
while É o mais genérico dos 3 e pode ser usado para substituir os outros 2; em outras palavras, o laço while supre todas as necessidades. Já os outros dois são usados por uma questão de comodidade.
while Fluxograma
while Pseudocódigo Enquanto <condição> faça <comando>; Fim_enquanto
while Linguagem C while (condição) { <comando>; }
while Exemplo: #include <stdio.h> main() { int x,y; x = y = 0; while(y<10){ x += ++y; } printf(“\n x=%d \n y=%d”,x,y);
do.. while O comando do.. while é semelhante ao comando while. A diferença está no momento da avaliação da expressão, o que ocorre sempre após a execução do comando do. Isso faz com que o comando do laço do.. While sempre execute pelo menos uma vez antes de realizar tal teste.
do.. while Fluxograma
do.. while Pseudocódigo Repita <comando 1>; até que <condição>
do.. while Linguagem C do <comando 1>; while (condição);
do.. while Exemplo #include <stdio.h> main() { int i = 1; do printf(“%d \n“,i); while (++i<=10); }
Comando break O comando break, quando utilizado em um bloco de comandos, associado a um for, while ou do.. While, faz com que o laço seja imediatamente interrompido, transferindo o processamento para o primeiro comando seguinte do laço.
Comando break #include <conio.h> main() { char ch; int i; #include <stdio.h> #include <conio.h> main() { char ch; int i; for(i =0; i<10; i++){ ch =getch(); if(ch==‘\x1b’){ /*ESC*/ break; } printf(“\n %c”, ch); puts(“\n acabou”); getch();
Comando continue O comando continue funciona de forma semelhante ao comando break. A diferença reside em que, ao invés de interromper a execução do laço, como o comando break, o comando continue pula as instruções que tiverem abaixo e força a próxima iteração do laço.
Comando continue #include <conio.h> main() { char ch; int i; #include <stdio.h> #include <conio.h> main() { char ch; int i; for(i =0; i<10; i++){ ch =getch(); if(ch==‘\x1b’){ /*ESC*/ continue; } printf(“\n %c”, ch); puts(“\n acabou”); getch();
Exercícios Faça o fluxograma, portugol e três códigos em linguagem C, cada código utilizando cada uma das estruturas de repetição, para cada exercício abaixo. 1. Imprimir todos os números existentes entre 1 e 20 em ordem crescente. 2. Imprimir todos os números existentes entre 1 e 20 em ordem decrescente. 3. Imprimir a soma de todos os números existentes entre 10 e 35 em ordem crescente.