Anda di halaman 1dari 9

Disciplina Informtica Fundamental

Autor: Alexandre Strapao Guedes Vianna

AULA Laos aninhados e comandos break e continue.


INTRODUO
Nesta aula voc vai aprender a aninhar estruturas de repetio, o uso de laos aninhados necessrio para fazer determinados processamentos um pouco mais complexos dos que os que vimos anteriormente. Tambm aprender a utilizar as instrues break e continue para alterar o controle de fluxo.

OBJETIVOS
Nesta aula voc ser capaz de:

1. Aninhar estruturas de repetio. 2. Utilizar instrues break e continue para alterar o controle de fluxo de um programa.

Disciplina: Informtica Fundamental Aula Laos aninhados e comandos break e continue.

ESTRUTURAS DE REPETIO ANINHADAS


Dependendo do problema a ser resolvido pode ser necessrio incluir uma estrutura de repetio dentro da outra, isto chamado de estrutura de repetio aninhada. As estruturas de repetio aninhadas so muito utilizadas para a manipulao de matrizes (vetores de vrias dimenses). A seguir veremos um exemplo de uma estrutura de repetio dentro de outra. Nesse caso a estrutura de repetio aninhada utilizada para calcular os fatoriais de 1 a 10.
int main() { for (int j = 1 ; j <= 10 ; j++){ long fatorial = 1; for (int i = 1 ; i <= j ; i++){ fatorial = fatorial * i; } cout << j << " fatorial: " << fatorial << endl; } return 0; } 1 fatorial: 1 2 fatorial: 2 3 fatorial: 6 4 fatorial: 24 5 fatorial: 120 6 fatorial: 720 7 fatorial: 5040 8 fatorial: 40320 9 fatorial: 362880 10 fatorial: 3628800

O clculo de apenas um fatorial exige apenas uma estrutura de repetio, porm para calcularmos os fatoriais de um intervalo de nmeros devemos aninhar a soluo para uma fatorial em outra estrutura de repetio. Observe que o contador do lao mais externo j foi utilizado no clculo do fatorial, pois a cada iterao o fatorial de j que est sendo calculado. Ateno: Ao aninhar comandos for utilizar contadores

diferentes para cada lao for aninhado.


Disciplina: Informtica Fundamental Aula Laos aninhados e comandos break e continue.

ALTERANADO O FLUXO DE CONTROLE COM BREAK E CONTINUE


As instrues break e continue so utilizadas para alterar o fluxo de controle. A instruo break, quando executada em uma estrutura while, for, do/while ou switch, faz com que acontea a sada imediata daquela estrutura. A execuo do programa continua com a primeira instruo depois da estrutura. Os usos comuns da instruo break so para sair prematuramente de um lao, ou para saltar sobre o restante de uma estrutura switch. O trecho de cdigo abaixo demonstra a instruo break em uma estrutura da repetio for. Quando a estrutura if detecta que x se tornou 5, o break executado. Isto encerrar a estrutura for e o programa continua com o cout aps o for. O lao s executado completamente quatro vezes.
int main(){ int x; for(x = 1; x <= 10; x++){ if(x == 5){ break; } cout << x << ; } cout << "\nSaiu do lao em x == " << x << endl; return 0; } 1 2 3 4 Saiu do lao em x == 5

Ateno: Nas repeties aninhadas, break s finaliza a

repetio imediata (interna na qual o break se encontra) e no interrompe as repeties mais externas.
A instruo continue, quando executada em uma estrutura while, for ou do/while, ignora (salta sobre) as instrues restantes no corpo daquela estrutura e realiza a prxima iterao do lao. Em estruturas while e do/while, o teste de continuao do lao avaliada imediatamente aps a
Disciplina: Informtica Fundamental Aula Laos aninhados e comandos break e continue.

instruo continue ser executada. Na estrutura for, a expresso de incremento executada e depois o teste de continuao do lao avaliado. O trecho de cdigo abaixo usa a instruo continue em uma estrutura for para ignorar a instruo cout no lao e comear a prxima iterao.

int main(){ int x; for(x = 1; x <= 10; x++){ if(x == 5){ continue; } cout << x << " "; } cout << "\nContinue usado para ignorar a impresso do valor 5" << endl; return 0; } 1 2 3 4 6 7 8 9 10 Continue usado para ignorar a impresso do valor 5

Ateno: Nas repeties aninhadas, continue s ignora

o restante da repetio imediata (interna na qual o continue se encontra) no afetando as repeties mais externas.

Disciplina: Informtica Fundamental Aula Laos aninhados e comandos break e continue.

EXEMPLO DE FIXAO: TABUADA


Nesta seo apresentamos um exemplo do uso de estruturas de repetio aninhadas e dos comandos de controle de fluxo break e continue, a sua tarefa analisar o exemplo e compilar este cdigo no seu computador.
Exemplo: Neste exemplo o programa exibe a tabuada de 1 a 10, porm:
i No exibe a tabuada do nmero 5, no lugar exibe a mensagem "No calcular a

tabuada do 5!". ii No exibe nenhuma elemento multiplicado pelo fator 5, no lugar exibe o caractere X.

Cdigo fonte com a soluo:


#include<iostream> using namespace std; int main(){ for (int j = 1 ; j <= 10 ; j++){ cout << "Tabuada do " << j << ": "; for (int i = 1 ; i <= 10; i++){ if(j == 5){ cout << "No calcular a tabuada do 5!"; break; } if(i == 5){ cout << "X "; continue; } cout << i*j << " "; } cout << endl ; } return 0; }

Disciplina: Informtica Fundamental Aula Laos aninhados e comandos break e continue.

Tabuada Tabuada Tabuada Tabuada Tabuada Tabuada Tabuada Tabuada Tabuada Tabuada

do do do do do do do do do do

1: 2: 3: 4: 5: 6: 7: 8: 9: 10:

1 2 3 4 X 6 7 8 2 4 6 8 X 12 14 16 3 6 9 12 X 18 21 24 4 8 12 16 X 24 28 32 No calcular a tabuada 6 12 18 24 X 36 42 48 7 14 21 28 X 42 49 56 8 16 24 32 X 48 56 64 9 18 27 36 X 54 63 72 10 20 30 40 X 60 70 80

9 18 27 36 do 54 63 72 81 90

10 20 30 40 5! 60 70 80 90 100

Observaes: Note que o lao interno interrompido com o comando break na rodada em que a tabuada do 5 seria calculada. O comando continue utilizado para impedir que os elementos multiplicados por 5 sejam calculados na tabuada dos outros nmero de 1 a 10, e no lugar exibido o caractere x.

Disciplina: Informtica Fundamental Aula Laos aninhados e comandos break e continue.

EXERCCIOS
Os arquivos com o cdigo fonte (extenso .cpp) devero ser submetidos no SIGAA at a data limite da tarefa. Boas Prticas: Apresente um cdigo organizado, seguindo algumas boas

prticas: 1. Faa a endentao do seu cdigo utilizando a tabulao. 2. Escolha nomes significativos para as variveis. 3. Declare as variveis sempre no incio do programa. 4. Escreva um comando por linha. 5. Escreva parnteses, ainda que redundantes, para facilitar o
entendimento de expresses aritmticas.

6. Digite as chaves, parnteses e colchetes (abrindo e fechando) antes


de digitar os comando ou expresses entre eles.

1- Escreva um programa que receba consecutivamente dois nmeros decimais positivos: dividendo e divisor. A cada rodada o programa dever apresentar o resultado da diviso: dividendo/divisor. - Se o usurio entrar com um divisor igual a ZERO o programa deve exibir a mensagem No possvel dividir por ZERO, e depois voltar a receber o divisor e dividendo. - O programa deve finalizar quando o usurio entrar com um dividendo negativo e exibir a mensagem O programa ser encerrado!. Ateno
i - Utilizar obrigatoriamente a os comandos break e continue!

Disciplina: Informtica Fundamental Aula Laos aninhados e comandos break e continue.

2 Fazer um programa que exiba os seguintes padres separadamente, um abaixo do outro. a)


* * * * * * * * * * * * * * * * * * * * * * * * * * *

b)
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

* * * * * * *

* * * * * *

* * * * *

* * * * * * * * * *

Ateno:
i Sugesto: utilizar estruturas de repetio aninhadas!

Disciplina: Informtica Fundamental Aula Laos aninhados e comandos break e continue.

RESUMO
Nesta aula voc aprendeu a aninhar estruturas de repetio while, for e do/while. Tambm aprendeu a alterar o fluxo de controle de uma programa com os comandos break e continue.

REFERNCIAS
ASCENCIO, A, F. G.; DE CAMPOS, E. A. V. FUNDAMENTOS DA PROGRAMAO DE COMPUTADORES. SO PAULO: PEARSON EDUCATION, 2008. ISBN: 8576051486; DAMAS, L. M. D. LINGUAGEM C. SO PAULO: LTC, 2007. ISBN: 8521615191; HERBERT, S. C COMPLETO E TOTAL. SO PAULO: PEARSON, 1997. ISBN: 8534605955

Disciplina: Informtica Fundamental Aula Laos aninhados e comandos break e continue.

Anda mungkin juga menyukai