Linguagem C Estruturas de Controlo Repetitivas 1 Ling. C – Estruturas Repetitivas REVISÃO Pode escrever-se qualquer programa recorrendo apenas a 3 formas de controlo da sua execução: Sequencial (já estudada) Condicional (já estudada) Repetitiva Um programa pode ter todas as estruturas de controlo o número de vezes que forem necessárias. 2 Ling. C – Estruturas Repetitivas As estruturas de controlo repetitivas permitem executar um conjunto de instruções determinado número de vezes. Podemos ter repetições condicionais ( a repetição ocorre condicionada a uma condição lógica) e incondicionais (que têm um número predefinido de repetições). 3 Ling. C – Estruturas Repetitivas Condicionais Existem dois tipos distintos de Repetições Condicionais Tipo 1 - Condição testada no início da repetição Tipo 2 - Condição testada no final da repetição 4 Ling. C – Estruturas Repetitivas Condicionais: while Sintaxe Geral: while (condição) { <bloco de instruções ; > } Características: Testa a condição antes da execução do bloco de instruções. Enquanto a condição for verdadeira, o bloco de instruções é executado. Assim, o bloco de instruções pode ser executado 0 ou mais vezes. Pára a execução do bloco de instruções quando a condição se tornar falsa (condição = 0). 5 Ling. C – Condição testada no início da repetição: while /* Description: exemplo da aplicação do ciclo (estrutura de controlo) while */ #include<stdio.h> main() { int i; i=0; while(i<=10) { printf("%d \n", i); i=i+1; } system("pause"); } 6 Ling. C – Condição testada no final da repetição: do - while Sintaxe Geral: do { < bloco de instruções ; > } while (condição) ; Características: Testa a condição após da execução do bloco de instruções . Enquanto a condição for verdadeira, o bloco de instruções é executado. Assim, o bloco de instruções é executado pelo menos uma vez. Pára a execução do bloco quando a condição se tornar falsa . 7 Ling. C – Condição testada no final da repetição: do-while /* Description: exemplo da aplicação do ciclo (estrutura de controlo) do-while */ #include<stdio.h> main() { int i; i=0; do { printf("%d\n", i); i=i+1; } while(i<=10); system("pause"); } 8 Ling. C – Estruturas Repetitivas Incondicionais: for Repetição Incondicional - N.º predefinido de repetições Sintaxe Geral: for (varDeControlo=valor_inicial; condição; (in/de)cremento_da_varDeControlo) { < bloco de instruções ; > } 9 Ling. C – Estruturas Repetitivas Incondicionais: for Características: Incrementa ou decrementa a variável de controlo cada vez que o bloco é executado O bloco de instruções é executado enquando a condição for verdadeira. A variável_de_controlo deve ser do tipo primitivo int. 10 Ling. C – Estruturas Repetitivas Incondicionais: for /* Description: exemplo da aplicação do ciclo (estrutura de controlo) for */ #include<stdio.h> main() { int i; for(i=0; i<=10; i=i+1) { printf("%d\n", i); } system("pause"); } 11 Ling. C – Incrementos e decrementos INCREMENTOS e DECREMENTOS Incremento significa aumentar o valor i=i+1; j=j+2; Decremento significa diminuir o valor i=i-1; j=j-10; 12 Ling. C – Incrementos e decrementos INCREMENTOS e DECREMENTOS de 1 unidade i=i+1; i=i-1; Podem-se usar as seguintes abreviaturas: i=i+1; i++; ++i; i=i-1; i--; --i; 13 Ling. C – Incrementos e decrementos Se o operador estiver à esquerda da variável ( ++i ) : o valor da variável será incrementado ou decrementado antes da variável ser usada noutra operação; Se o operador estiver à direita da variável ( i++ ) : o valor da variável será incrementado ou decrementado depois da variável ser usada noutra operação; Linguagem C int a, b, c, i=3; a=i++; b=++i; c=--i; Traçagem a: ? a: 3 a: 3 a: 3 b: ? b: ? b: 5 b: 5 c: ? c: ? c: ? c: 4 i: 3 i: 4 i: 5 i: 4 14 Ling. C – Estruturas Repetitivas Incondicionais /* Description: exemplo da aplicação do ciclo (estrutura de controlo) for */ #include<stdio.h> main() { int i; for(i=0; i<=10; i++) { printf("%d\n", i); } system("pause"); } 15