Baixe o app para aproveitar ainda mais
Prévia do material em texto
Prof. Edson J. R. Justino Prof. Claudio Carvilhe Parte 8 - Lab Pontifícia Universidade Católica do Paraná - PUCPR CONTROLE DE FLUXO Estrutura de Controle de FluxoEstrutura de Controle de Fluxo �� Comando FORComando FOR �� Comando DOComando DO--WHILEWHILE Comando BREAKComando BREAK�� Comando BREAKComando BREAK �� Comando CONTINUEComando CONTINUE Estrutura Condicional MúltiplaEstrutura Condicional Múltipla �� Comando SWITCHComando SWITCH Comando for � O for existe em uma forma bem parecida com a forma convencional, embora tenha uma filosofia elegante que lhe permite construções bem mais versáteis. � Sintaxe: for(expressão1 ; expressão2 ; expressão3) { comandos; }} Sendo: Expressão1 - é zero ou mais expressões separadas por vírgulas que serão executadas antes da interação do bloco de comandos associado. Expressão2 - é geralmente um teste lógico, no caso de ser avaliado “falso”, indica o fim da iteração. Expressão3 - é zero ou mais expressões separadas por vírgulas que serão executadas no momento do término de uma iteração. /************************************ Exemplo de Comando For ************************************/ #include <stdio.h> void main( ){void main( ){ int i; for (i = 0; i < 10; i++) printf(“ %d\n”,i); } Comando do-while � O do-while, mais conhecido em outras linguagens por uma variante com o nome de repeat-until, é outra forma estruturada para controle de fluxo. � Sintaxe: do{ A execução ocorre do seguinte modo:do{ Comandos; }while (condição); A execução ocorre do seguinte modo: 1) O bloco de comando é executado; 2) A expressão é avaliada; 3) Caso o valor seja “verdadeiro”, o fluxo de execução volta para o item 1; 4) Caso o valor seja “falso”, o “loop” terminará, e o processamento segue a partir do primeiro comando após o do-while. /************************************** Exemplo de Comando Do-While **************************************/ #include <stdio.h> void main( ){ int i; i = 1; do{ printf(“i = %d\n”,i); i++; }while(i < 10); } Comandos break e continue � Algumas vezes torna-se necessário o controle de execução de uma iteração independentemente do teste lógico efetuado. � O break, quando utilizado dentro do bloco de comandos associados aos comandos de “loop”, com o for, faz com que o “loop” seja imediatamente interrompido, transferindo o fluxo de execução para o próximo comando fora do “loop”.execução para o próximo comando fora do “loop”. � O continue, desvia o fluxo de execução para a próxima iteração dos comandos /************************************** Exemplo de Comando Continue **************************************/ #include <stdio.h> void main( ){ int i; i = 1; do{do{ i++; if ((i % 2) == 0 ) continue; printf(“i = %d\n”,i); }while(i < 10); } /************************************** Exemplo de Comando Break **************************************/ #include <stdio.h> void main( ) { int i; i = 1; do{ i++; if (i == 5 ) break; printf(“i = %d\n”,i); }while(i < 10); } Comando switch � A linguagem C provê o programador de um comando que possibilita a tomada de múltiplas decisões baseadas em uma expressão. � Sintaxe: switch(expressão) { case 1: comandos; break; case 2: comandos; break; default: comandos; break; } /*********************************** Exemplo de Comando Switch ***********************************/ #include <stdio.h> void main( ){ char ch; char resp1[ ] = “opcao escolhida foi a 1”, resp2[ ] = “opcao escolhida foi a 2”, resp3[ ] = “opcao escolhida foi a 3”, resp4[ ] = “opcao escolhida foi a default”; puts(“Entre com um numero <1,2 ou 3>:”);puts(“Entre com um numero <1,2 ou 3>:”); ch = getchar ( ); switch(ch) { case ‘1’: printf(“%s\n”, resp1); break; case ‘2’: printf(“%s\n”, resp2); break; case ‘3’: printf(“%s\n”,resp3); break; default : printf(“%s\n”, resp4); } } Exercícios � 1) Implemente o seguinte algoritmo usando do-while InícioInício realreal VOLUME, PI, R;VOLUME, PI, R; PI<PI<-- 3,1416;3,1416; R <R <-- 0;0; Enquanto Enquanto R R ≤ 6≤ 6 fafaççaa VOLUME <VOLUME <-- 4/3 * PI *4/3 * PI *VOLUME <VOLUME <-- 4/3 * PI *4/3 * PI * (R**3);(R**3); Imprimir (Imprimir (R, VOLUMER, VOLUME);); R <R <-- R + 2;R + 2; FimFim--enquantoenquanto FimFim Exercícios � 2) Implemente o seguinte algoritmo usando for InícioInício realreal VOLUME, PI, R;VOLUME, PI, R; PI<PI<-- 3,1416;3,1416; R <R <-- 0;0; Enquanto Enquanto R R ≤ 6≤ 6 fafaççaa VOLUME <VOLUME <-- 4/3 * PI *4/3 * PI *VOLUME <VOLUME <-- 4/3 * PI *4/3 * PI * (R**3);(R**3); Imprimir (Imprimir (R, VOLUMER, VOLUME);); R <R <-- R + 2;R + 2; FimFim--enquantoenquanto FimFim Exercícios � 3) Implemente o seguinte algoritmo usando o comando break InícioInício intint I;I; Enquanto Enquanto I > 0I > 0 fafaççaa I<I<-- I I –– 0,05;0,05; imprima (imprima (ii);); Se Se (I**2) + 1 ≥ 1,45(I**2) + 1 ≥ 1,45 entãoentãobreak Se Se (I**2) + 1 ≥ 1,45(I**2) + 1 ≥ 1,45 entãoentão I <I <-- I + 0,20;I + 0,20; Senão Senão Abandone;Abandone; FimFim--sese FimFim--enquantoenquanto FimFim Exercícios � 4)Elabore um programa em C para simular uma calculadora com as quatro operações (+,-,/e *), usando a estrutura switch.
Compartilhar