Tecnologia em Sistemas para Internet - IFMSAula Extra – Laços de RepetiçãoTópicos em ProgramaçãoProf.º Msc. Sidney Roberto...
Tec. em Sistemas para Internet - IFMS 2O que veremos nesta aula?● Porquê utilizar laços de repetição?● O laço de repetição...
Tec. em Sistemas para Internet - IFMS 3Problema● Imagine que devemos resolver o seguinteproblema:Escreva um programa para ...
Tec. em Sistemas para Internet - IFMS 4SoluçãoSystem.out.println(“1 2 3 4”);
Tec. em Sistemas para Internet - IFMS 5Problema● Agora, vamos redefinir o nosso problema:Escreva um programa que leia do u...
Tec. em Sistemas para Internet - IFMS 6Solução “não muito inteligente”System.out.println("Digite um numero inteiro positiv...
Tec. em Sistemas para Internet - IFMS 7Analisando a solução anterior● Bem, como dito, a solução anterior não é muito intel...
Tec. em Sistemas para Internet - IFMS 8Solução utilizando o laço whileClasse ExemploWhile(abaixo no blog)
Tec. em Sistemas para Internet - IFMS 9Analisando a solução com o laço whileint contador = 1;while (contador <= n) {    Sy...
Tec. em Sistemas para Internet - IFMS 10Analisando a solução com o laço whileint contador = 1;while (contador <= n) {    S...
Tec. em Sistemas para Internet - IFMS 11Analisando a solução com o laço whileint contador = 1;while (contador <= n) {    S...
Tec. em Sistemas para Internet - IFMS 12Analisando a solução com o laço whileint contador = 1;while (contador <= n) {    S...
Tec. em Sistemas para Internet - IFMS 13Analisando a solução com o laço whileint contador = 1;while (contador <= n) {    S...
Tec. em Sistemas para Internet - IFMS 14Analisando a solução com o laço whileint contador = 1;while (contador <= n) {    S...
Tec. em Sistemas para Internet - IFMS 15Sobre o laço while...● O laço while só é executado se e somente sea sua condição l...
Tec. em Sistemas para Internet - IFMS 16Solução utilizando o laço do whileClasse ExemploDoWhile(abaixo no blog)
Tec. em Sistemas para Internet - IFMS 17Analisando a solução com o laço do whileint contador = 0;do {    contador++;    Sy...
Tec. em Sistemas para Internet - IFMS 18Analisando a solução com o laço do whileint contador = 0;do {    contador++;    Sy...
Tec. em Sistemas para Internet - IFMS 19Analisando a solução com o laço do whileint contador = 0;do {    contador++;    Sy...
Tec. em Sistemas para Internet - IFMS 20Analisando a solução com o laço do whileint contador = 0;do {    contador++;    Sy...
Tec. em Sistemas para Internet - IFMS 21Analisando a solução com o laço do whileint contador = 0;do {    contador++;    Sy...
Tec. em Sistemas para Internet - IFMS 22Analisando a solução com o laço do whileint contador = 0;do {    contador++;    Sy...
Tec. em Sistemas para Internet - IFMS 23Analisando a solução com o laço do whileint contador = 0;do {    contador++;    Sy...
Tec. em Sistemas para Internet - IFMS 24Sobre o laço do while...● O laço do while sempre executa ao menosuma iteração● Ass...
Tec. em Sistemas para Internet - IFMS 25Solução utilizando o laço forClasse ExemploFor(abaixo no blog)
Tec. em Sistemas para Internet - IFMS 26Analisando a solução com o laço forfor(int contador = 1; contador <= n; contador++...
Tec. em Sistemas para Internet - IFMS 27Analisando a solução com o laço forfor(int contador = 1; contador <= n; contador++...
Tec. em Sistemas para Internet - IFMS 28Analisando a solução com o laço forfor(int contador = 1; contador <= n; contador++...
Tec. em Sistemas para Internet - IFMS 29Analisando a solução com o laço forfor(int contador = 1; contador <= n; i++) {    ...
Tec. em Sistemas para Internet - IFMS 30Analisando a solução com o laço forfor(int contador = 1; contador <= n; contador++...
Tec. em Sistemas para Internet - IFMS 31Analisando a solução com o laço forfor(int contador = 1; contador <= n; contador++...
Tec. em Sistemas para Internet - IFMS 32Analisando a solução com o laço forfor(int contador = 1; contador <= n; contador++...
Tec. em Sistemas para Internet - IFMS 33Analisando a solução com o laço forfor(int contador = 1; contador <= n; contador++...
Tec. em Sistemas para Internet - IFMS 34Analisando a solução com o laço forfor(int contador = 1; contador <= n; contador++...
Tec. em Sistemas para Internet - IFMS 35Ordem de execuçãofor(int contador = 1; contador <= n; contador++) {    System.out....
Tec. em Sistemas para Internet - IFMS 36Ordem de execuçãofor(int contador = 1; contador <= n; contador++) {    System.out....
Tec. em Sistemas para Internet - IFMS 37Ordem de execuçãofor(int contador = 1; contador <= n; contador++) {    System.out....
Tec. em Sistemas para Internet - IFMS 38Exemplo laço forPara um exemplo mais complexo, veja aclasse ExemploFor2(abaixo no ...
Tec. em Sistemas para Internet - IFMS 39Thats all, folks!Quaisquer dúvidas, chore fale comigo em salade aula ou me mande u...
Próximos SlideShares
Carregando em…5
×

Laços de Repetição

7.635 visualizações

Publicada em

Publicada em: Tecnologia
2 comentários
3 gostaram
Estatísticas
Notas
Sem downloads
Visualizações
Visualizações totais
7.635
No SlideShare
0
A partir de incorporações
0
Número de incorporações
825
Ações
Compartilhamentos
0
Downloads
92
Comentários
2
Gostaram
3
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Laços de Repetição

  1. 1. Tecnologia em Sistemas para Internet - IFMSAula Extra – Laços de RepetiçãoTópicos em ProgramaçãoProf.º Msc. Sidney Roberto de Sousa
  2. 2. Tec. em Sistemas para Internet - IFMS 2O que veremos nesta aula?● Porquê utilizar laços de repetição?● O laço de repetição while● O laço de repetição do while● O laço de repetição for
  3. 3. Tec. em Sistemas para Internet - IFMS 3Problema● Imagine que devemos resolver o seguinteproblema:Escreva um programa para imprimir na tela asequência de 1 até 4 em uma mesma linha.● Parece simples!
  4. 4. Tec. em Sistemas para Internet - IFMS 4SoluçãoSystem.out.println(“1 2 3 4”);
  5. 5. Tec. em Sistemas para Internet - IFMS 5Problema● Agora, vamos redefinir o nosso problema:Escreva um programa que leia do usuário umvalor inteiro positivo n e imprima na tela asequência de 1 até n em uma mesma linha.● Vamos tentar resolver este problemautilizando a mesma “estratégia” da soluçãoanterior (que eu batizei de solução “não muitointeligente”...)
  6. 6. Tec. em Sistemas para Internet - IFMS 6Solução “não muito inteligente”System.out.println("Digite um numero inteiro positivo:");Scanner leitor = new Scanner(System.in);int n = leitor.nextInt();// Garantindo que o valor de n seja positivo...if (n < 0) {n = n * -1;} else if (n == 0) {n = 1;}// E lá vamos nós...if (n == 1) {System.out.println("1");} else if (n == 2) {System.out.println("1 2");} else if (n == 3) {System.out.println("1 2 3");} else if (n == 4) {System.out.println("1 2 3 4");} else if (n == 5) {System.out.println("1 2 3 4 5");} else if (n == 6) {System.out.println("1 2 3 4 5 6");}// .. continua... até quando?
  7. 7. Tec. em Sistemas para Internet - IFMS 7Analisando a solução anterior● Bem, como dito, a solução anterior não é muito inteligente:– Sabemos qual número o usuário irá digitar?– Quantas condições lógicas são necessárias para solucionar oproblema para qualquer número positivo que o usuário digitar?● Precisamos escrever um código que seja capaz de imprimir todos osnúmeros da sequência, porém utilizando um número fixo e mínimo delinhas de código● Para tanto, precisamos de alguma forma escrever um código que repitaa impressão dos números de forma categórica e estratégica● Solução inteligente: utilizar um laço de repetição!
  8. 8. Tec. em Sistemas para Internet - IFMS 8Solução utilizando o laço whileClasse ExemploWhile(abaixo no blog)
  9. 9. Tec. em Sistemas para Internet - IFMS 9Analisando a solução com o laço whileint contador = 1;while (contador <= n) {    System.out.print(contador + " ");    contador++;}
  10. 10. Tec. em Sistemas para Internet - IFMS 10Analisando a solução com o laço whileint contador = 1;while (contador <= n) {    System.out.print(contador + " ");    contador++;}Enquanto...
  11. 11. Tec. em Sistemas para Internet - IFMS 11Analisando a solução com o laço whileint contador = 1;while (contador <= n) {    System.out.print(contador + " ");    contador++;}Enquanto o valor da variável contador formenor ou igual ao valor da variável n...
  12. 12. Tec. em Sistemas para Internet - IFMS 12Analisando a solução com o laço whileint contador = 1;while (contador <= n) {    System.out.print(contador + " ");    contador++;}Enquanto o valor da variável contador formenor ou igual ao valor da variável n, repita aexecução do código localizado entre as chaves.
  13. 13. Tec. em Sistemas para Internet - IFMS 13Analisando a solução com o laço whileint contador = 1;while (contador <= n) {    System.out.print(contador + " ");    contador++;}A variável contador é inicializada com o valor1, que é o primeiro valor que o nosso programadeve imprimir...
  14. 14. Tec. em Sistemas para Internet - IFMS 14Analisando a solução com o laço whileint contador = 1;while (contador <= n) {    System.out.print(contador + " ");    contador++;}A cada iteração, o valor da variável contador éimpresso. Logo em seguida, o valor da variávelcontador é incrementado em uma unidade.Assim, na próxima iteração, o valor a serimpresso é uma unidade maior que o valor atual.
  15. 15. Tec. em Sistemas para Internet - IFMS 15Sobre o laço while...● O laço while só é executado se e somente sea sua condição lógica de manutenção forsatisfeita● Assim, para que um laço while execute aomenos uma iteração, a sua condição lógica demanutenção deve ser satisfeita ao menosuma vez
  16. 16. Tec. em Sistemas para Internet - IFMS 16Solução utilizando o laço do whileClasse ExemploDoWhile(abaixo no blog)
  17. 17. Tec. em Sistemas para Internet - IFMS 17Analisando a solução com o laço do whileint contador = 0;do {    contador++;    System.out.print(contador + " ");} while (contador < n);
  18. 18. Tec. em Sistemas para Internet - IFMS 18Analisando a solução com o laço do whileint contador = 0;do {    contador++;    System.out.print(contador + " ");} while (contador < n);Repita...
  19. 19. Tec. em Sistemas para Internet - IFMS 19Analisando a solução com o laço do whileint contador = 0;do {    contador++;    System.out.print(contador + " ");} while (contador < n);Repita a execução do trecho de código localizadoentre as chaves...
  20. 20. Tec. em Sistemas para Internet - IFMS 20Analisando a solução com o laço do whileint contador = 0;do {    contador++;    System.out.print(contador + " ");} while (contador < n);Repita a execução do trecho de código localizadoentre as chaves enquanto o valor da variávelcontador for menor que o valor da variável n.
  21. 21. Tec. em Sistemas para Internet - IFMS 21Analisando a solução com o laço do whileint contador = 0;do {    contador++;    System.out.print(contador + " ");} while (contador < n);A variável contador é inicializada com o valor 0.Este não é o valor correto do primeiro valor aser impresso, porém...
  22. 22. Tec. em Sistemas para Internet - IFMS 22Analisando a solução com o laço do whileint contador = 0;do {    contador++;    System.out.print(contador + " ");} while (contador < n);… no início de cada iteração, o valor da variávelcontador é incrementado em uma unidade.Logo em seguida, o valor correto é impresso natela.
  23. 23. Tec. em Sistemas para Internet - IFMS 23Analisando a solução com o laço do whileint contador = 0;do {    contador++;    System.out.print(contador + " ");} while (contador < n);O laço é executado até que o valor da variável contadorseja menor que o valor da variável n. Isto parece um tantoanti-intuitivo no início mas, se você analisar o código acima,você verá que esta condição se deve ao fato de que oincremento do valor da variável contador é realizado antesde que este seja impresso na tela.
  24. 24. Tec. em Sistemas para Internet - IFMS 24Sobre o laço do while...● O laço do while sempre executa ao menosuma iteração● Assim, para que um laço do while executeapós a primeira iteração, a sua condiçãológica de manutenção deve ser satisfeita aomenos uma vez
  25. 25. Tec. em Sistemas para Internet - IFMS 25Solução utilizando o laço forClasse ExemploFor(abaixo no blog)
  26. 26. Tec. em Sistemas para Internet - IFMS 26Analisando a solução com o laço forfor(int contador = 1; contador <= n; contador++) {    System.out.print(contador + " ");}
  27. 27. Tec. em Sistemas para Internet - IFMS 27Analisando a solução com o laço forfor(int contador = 1; contador <= n; contador++) {    System.out.print(contador + " ");}Para...
  28. 28. Tec. em Sistemas para Internet - IFMS 28Analisando a solução com o laço forfor(int contador = 1; contador <= n; contador++) {    System.out.print(contador + " ");}Para o valor de contador partindo de 1...
  29. 29. Tec. em Sistemas para Internet - IFMS 29Analisando a solução com o laço forfor(int contador = 1; contador <= n; i++) {    System.out.print(contador + " ");}Para o valor de contador partindo de 1 até atingiro valor de n..
  30. 30. Tec. em Sistemas para Internet - IFMS 30Analisando a solução com o laço forfor(int contador = 1; contador <= n; contador++) {    System.out.print(contador + " ");}Para o valor de contador partindo de 1 até atingir ovalor de n, incrementando o valor de contador emuma unidade a cada iteração...
  31. 31. Tec. em Sistemas para Internet - IFMS 31Analisando a solução com o laço forfor(int contador = 1; contador <= n; contador++) {    System.out.print(contador + " ");}Para o valor de contador partindo de 1 até atingir ovalor de n, incrementando o valor de contador emuma unidade a cada iteração, repita o trecho de códigoentre as chaves.
  32. 32. Tec. em Sistemas para Internet - IFMS 32Analisando a solução com o laço forfor(int contador = 1; contador <= n; contador++) {    System.out.print(contador + " ");}O primeiro argumento de um laço for contém asinicializações desejadas para o laço. No caso, avariável contador é inicializada com o valor 1. Estainicialização é executada somente uma vez, antesmesmo da execução da primeira iteração do laço.
  33. 33. Tec. em Sistemas para Internet - IFMS 33Analisando a solução com o laço forfor(int contador = 1; contador <= n; contador++) {    System.out.print(contador + " ");}O segundo argumento de um laço for é a condiçãológica de manutenção do laço. Ou seja, é o teste lógicorealizado antes de cada iteração para avaliar se aiteração deve ser executada ou se o laço deve parar deexecutar iterações. No caso, o laço executará enquantoo valor da variável contador for menor ou igual ao valorda variável n.
  34. 34. Tec. em Sistemas para Internet - IFMS 34Analisando a solução com o laço forfor(int contador = 1; contador <= n; contador++) {    System.out.print(contador + " ");}O terceiro e último argumento de um laço for contém ocódigo a ser executado no final de cada iteração. Nocaso, após o valor da variável contador ser exibido, eleé incrementado em uma unidade.
  35. 35. Tec. em Sistemas para Internet - IFMS 35Ordem de execuçãofor(int contador = 1; contador <= n; contador++) {    System.out.print(contador + " ");}Executado somente uma vez, antes do laço forcomeçar a executar a primeira iteração.
  36. 36. Tec. em Sistemas para Internet - IFMS 36Ordem de execuçãofor(int contador = 1; contador <= n; contador++) {    System.out.print(contador + " ");}Executado sempre, antes da execução de cadaiteração.
  37. 37. Tec. em Sistemas para Internet - IFMS 37Ordem de execuçãofor(int contador = 1; contador <= n; contador++) {    System.out.print(contador + " ");}Executado sempre, após a execução de cadaiteração.
  38. 38. Tec. em Sistemas para Internet - IFMS 38Exemplo laço forPara um exemplo mais complexo, veja aclasse ExemploFor2(abaixo no blog)
  39. 39. Tec. em Sistemas para Internet - IFMS 39Thats all, folks!Quaisquer dúvidas, chore fale comigo em salade aula ou me mande um e-mail:sidney.sousa@ifms.edu.br

×