SlideShare una empresa de Scribd logo
1 de 39
Descargar para leer sin conexión
Tecnologia em Sistemas para Internet - IFMS
Aula Extra – Laços de Repetição
Tópicos em Programação
Prof.º Msc. Sidney Roberto de Sousa
Tec. em Sistemas para Internet - IFMS 2
O 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
Tec. em Sistemas para Internet - IFMS 3
Problema
● Imagine que devemos resolver o seguinte
problema:
Escreva um programa para imprimir na tela a
sequência de 1 até 4 em uma mesma linha.
● Parece simples!
Tec. em Sistemas para Internet - IFMS 4
Solução
System.out.println(“1 2 3 4”);
Tec. em Sistemas para Internet - IFMS 5
Problema
● Agora, vamos redefinir o nosso problema:
Escreva um programa que leia do usuário um
valor inteiro positivo n e imprima na tela a
sequência de 1 até n em uma mesma linha.
● Vamos tentar resolver este problema
utilizando a mesma “estratégia” da solução
anterior (que eu batizei de solução “não muito
inteligente”...)
Tec. em Sistemas para Internet - IFMS 6
Soluçã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?
Tec. em Sistemas para Internet - IFMS 7
Analisando 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 o
problema para qualquer número positivo que o usuário digitar?
● Precisamos escrever um código que seja capaz de imprimir todos os
números da sequência, porém utilizando um número fixo e mínimo de
linhas de código
● Para tanto, precisamos de alguma forma escrever um código que repita
a impressão dos números de forma categórica e estratégica
● Solução inteligente: utilizar um laço de repetição!
Tec. em Sistemas para Internet - IFMS 8
Solução utilizando o laço while
Classe ExemploWhile
(abaixo no blog)
Tec. em Sistemas para Internet - IFMS 9
Analisando a solução com o laço while
int contador = 1;
while (contador <= n) {
    System.out.print(contador + " ");
    contador++;
}
Tec. em Sistemas para Internet - IFMS 10
Analisando a solução com o laço while
int contador = 1;
while (contador <= n) {
    System.out.print(contador + " ");
    contador++;
}
Enquanto...
Tec. em Sistemas para Internet - IFMS 11
Analisando a solução com o laço while
int contador = 1;
while (contador <= n) {
    System.out.print(contador + " ");
    contador++;
}
Enquanto o valor da variável contador for
menor ou igual ao valor da variável n...
Tec. em Sistemas para Internet - IFMS 12
Analisando a solução com o laço while
int contador = 1;
while (contador <= n) {
    System.out.print(contador + " ");
    contador++;
}
Enquanto o valor da variável contador for
menor ou igual ao valor da variável n, repita a
execução do código localizado entre as chaves.
Tec. em Sistemas para Internet - IFMS 13
Analisando a solução com o laço while
int contador = 1;
while (contador <= n) {
    System.out.print(contador + " ");
    contador++;
}
A variável contador é inicializada com o valor
1, que é o primeiro valor que o nosso programa
deve imprimir...
Tec. em Sistemas para Internet - IFMS 14
Analisando a solução com o laço while
int 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ável
contador é incrementado em uma unidade.
Assim, na próxima iteração, o valor a ser
impresso é uma unidade maior que o valor atual.
Tec. em Sistemas para Internet - IFMS 15
Sobre o laço while...
● O laço while só é executado se e somente se
a sua condição lógica de manutenção for
satisfeita
● Assim, para que um laço while execute ao
menos uma iteração, a sua condição lógica de
manutenção deve ser satisfeita ao menos
uma vez
Tec. em Sistemas para Internet - IFMS 16
Solução utilizando o laço do while
Classe ExemploDoWhile
(abaixo no blog)
Tec. em Sistemas para Internet - IFMS 17
Analisando a solução com o laço do while
int contador = 0;
do {
    contador++;
    System.out.print(contador + " ");
} while (contador < n);
Tec. em Sistemas para Internet - IFMS 18
Analisando a solução com o laço do while
int contador = 0;
do {
    contador++;
    System.out.print(contador + " ");
} while (contador < n);
Repita...
Tec. em Sistemas para Internet - IFMS 19
Analisando a solução com o laço do while
int contador = 0;
do {
    contador++;
    System.out.print(contador + " ");
} while (contador < n);
Repita a execução do trecho de código localizado
entre as chaves...
Tec. em Sistemas para Internet - IFMS 20
Analisando a solução com o laço do while
int contador = 0;
do {
    contador++;
    System.out.print(contador + " ");
} while (contador < n);
Repita a execução do trecho de código localizado
entre as chaves enquanto o valor da variável
contador for menor que o valor da variável n.
Tec. em Sistemas para Internet - IFMS 21
Analisando a solução com o laço do while
int 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 a
ser impresso, porém...
Tec. em Sistemas para Internet - IFMS 22
Analisando a solução com o laço do while
int contador = 0;
do {
    contador++;
    System.out.print(contador + " ");
} while (contador < n);
… no início de cada iteração, o valor da variável
contador é incrementado em uma unidade.
Logo em seguida, o valor correto é impresso na
tela.
Tec. em Sistemas para Internet - IFMS 23
Analisando a solução com o laço do while
int contador = 0;
do {
    contador++;
    System.out.print(contador + " ");
} while (contador < n);
O laço é executado até que o valor da variável contador
seja menor que o valor da variável n. Isto parece um tanto
anti-intuitivo no início mas, se você analisar o código acima,
você verá que esta condição se deve ao fato de que o
incremento do valor da variável contador é realizado antes
de que este seja impresso na tela.
Tec. em Sistemas para Internet - IFMS 24
Sobre o laço do while...
● O laço do while sempre executa ao menos
uma iteração
● Assim, para que um laço do while execute
após a primeira iteração, a sua condição
lógica de manutenção deve ser satisfeita ao
menos uma vez
Tec. em Sistemas para Internet - IFMS 25
Solução utilizando o laço for
Classe ExemploFor
(abaixo no blog)
Tec. em Sistemas para Internet - IFMS 26
Analisando a solução com o laço for
for(int contador = 1; contador <= n; contador++) {
    System.out.print(contador + " ");
}
Tec. em Sistemas para Internet - IFMS 27
Analisando a solução com o laço for
for(int contador = 1; contador <= n; contador++) {
    System.out.print(contador + " ");
}
Para...
Tec. em Sistemas para Internet - IFMS 28
Analisando a solução com o laço for
for(int contador = 1; contador <= n; contador++) {
    System.out.print(contador + " ");
}
Para o valor de contador partindo de 1...
Tec. em Sistemas para Internet - IFMS 29
Analisando a solução com o laço for
for(int contador = 1; contador <= n; i++) {
    System.out.print(contador + " ");
}
Para o valor de contador partindo de 1 até atingir
o valor de n..
Tec. em Sistemas para Internet - IFMS 30
Analisando a solução com o laço for
for(int contador = 1; contador <= n; contador++) {
    System.out.print(contador + " ");
}
Para o valor de contador partindo de 1 até atingir o
valor de n, incrementando o valor de contador em
uma unidade a cada iteração...
Tec. em Sistemas para Internet - IFMS 31
Analisando a solução com o laço for
for(int contador = 1; contador <= n; contador++) {
    System.out.print(contador + " ");
}
Para o valor de contador partindo de 1 até atingir o
valor de n, incrementando o valor de contador em
uma unidade a cada iteração, repita o trecho de código
entre as chaves.
Tec. em Sistemas para Internet - IFMS 32
Analisando a solução com o laço for
for(int contador = 1; contador <= n; contador++) {
    System.out.print(contador + " ");
}
O primeiro argumento de um laço for contém as
inicializações desejadas para o laço. No caso, a
variável contador é inicializada com o valor 1. Esta
inicialização é executada somente uma vez, antes
mesmo da execução da primeira iteração do laço.
Tec. em Sistemas para Internet - IFMS 33
Analisando a solução com o laço for
for(int contador = 1; contador <= n; contador++) {
    System.out.print(contador + " ");
}
O segundo argumento de um laço for é a condição
lógica de manutenção do laço. Ou seja, é o teste lógico
realizado antes de cada iteração para avaliar se a
iteração deve ser executada ou se o laço deve parar de
executar iterações. No caso, o laço executará enquanto
o valor da variável contador for menor ou igual ao valor
da variável n.
Tec. em Sistemas para Internet - IFMS 34
Analisando a solução com o laço for
for(int contador = 1; contador <= n; contador++) {
    System.out.print(contador + " ");
}
O terceiro e último argumento de um laço for contém o
código a ser executado no final de cada iteração. No
caso, após o valor da variável contador ser exibido, ele
é incrementado em uma unidade.
Tec. em Sistemas para Internet - IFMS 35
Ordem de execução
for(int contador = 1; contador <= n; contador++) {
    System.out.print(contador + " ");
}
Executado somente uma vez, antes do laço for
começar a executar a primeira iteração.
Tec. em Sistemas para Internet - IFMS 36
Ordem de execução
for(int contador = 1; contador <= n; contador++) {
    System.out.print(contador + " ");
}
Executado sempre, antes da execução de cada
iteração.
Tec. em Sistemas para Internet - IFMS 37
Ordem de execução
for(int contador = 1; contador <= n; contador++) {
    System.out.print(contador + " ");
}
Executado sempre, após a execução de cada
iteração.
Tec. em Sistemas para Internet - IFMS 38
Exemplo laço for
Para um exemplo mais complexo, veja a
classe ExemploFor2
(abaixo no blog)
Tec. em Sistemas para Internet - IFMS 39
That's all, folks!
Quaisquer dúvidas, chore fale comigo em sala
de aula ou me mande um e-mail:
sidney.sousa@ifms.edu.br

Más contenido relacionado

La actualidad más candente

Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Adriano Teixeira de Souza
 
Manutenção de Computadores - Aula 1
Manutenção de Computadores - Aula 1Manutenção de Computadores - Aula 1
Manutenção de Computadores - Aula 1Guilherme Nonino Rosa
 
Hierarquia de memória
Hierarquia de memóriaHierarquia de memória
Hierarquia de memóriaPAULO Moreira
 
Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Pacc UAB
 
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)Leinylson Fontinele
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação CGercélia Ramos
 
Estrutura de Dados Apoio (Tabela Hash)
Estrutura de Dados Apoio (Tabela Hash)Estrutura de Dados Apoio (Tabela Hash)
Estrutura de Dados Apoio (Tabela Hash)Leinylson Fontinele
 
Apostila Modelo ER (Entidade Relacionamento)
Apostila Modelo ER (Entidade Relacionamento)Apostila Modelo ER (Entidade Relacionamento)
Apostila Modelo ER (Entidade Relacionamento)Ricardo Terra
 
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)Leinylson Fontinele
 
Ordenação de vetores
Ordenação de vetoresOrdenação de vetores
Ordenação de vetoresalfredtaddeus
 
Aula 10 - Equivalência Java x Portugol Studio - parte 1
Aula 10 - Equivalência Java x Portugol Studio - parte 1Aula 10 - Equivalência Java x Portugol Studio - parte 1
Aula 10 - Equivalência Java x Portugol Studio - parte 1Pacc UAB
 
Banco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de DadosBanco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de DadosLeinylson Fontinele
 

La actualidad más candente (20)

Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
 
Manutenção de Computadores - Aula 1
Manutenção de Computadores - Aula 1Manutenção de Computadores - Aula 1
Manutenção de Computadores - Aula 1
 
Aula1 Operador de Microcomputadores
Aula1 Operador de MicrocomputadoresAula1 Operador de Microcomputadores
Aula1 Operador de Microcomputadores
 
Hierarquia de memória
Hierarquia de memóriaHierarquia de memória
Hierarquia de memória
 
Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1
 
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 
Árvore Binária
Árvore BináriaÁrvore Binária
Árvore Binária
 
Estrutura de Dados Apoio (Tabela Hash)
Estrutura de Dados Apoio (Tabela Hash)Estrutura de Dados Apoio (Tabela Hash)
Estrutura de Dados Apoio (Tabela Hash)
 
Apostila Modelo ER (Entidade Relacionamento)
Apostila Modelo ER (Entidade Relacionamento)Apostila Modelo ER (Entidade Relacionamento)
Apostila Modelo ER (Entidade Relacionamento)
 
O que é um Banco de Dados Relacional?
O que é um Banco de Dados Relacional?O que é um Banco de Dados Relacional?
O que é um Banco de Dados Relacional?
 
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)
 
binary tree
binary treebinary tree
binary tree
 
6 estruturas de dados heterogêneas
6  estruturas de dados heterogêneas6  estruturas de dados heterogêneas
6 estruturas de dados heterogêneas
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Apostila C ANSI
Apostila C ANSIApostila C ANSI
Apostila C ANSI
 
Ordenação de vetores
Ordenação de vetoresOrdenação de vetores
Ordenação de vetores
 
Aula 10 - Equivalência Java x Portugol Studio - parte 1
Aula 10 - Equivalência Java x Portugol Studio - parte 1Aula 10 - Equivalência Java x Portugol Studio - parte 1
Aula 10 - Equivalência Java x Portugol Studio - parte 1
 
Linguagem C - Ponteiros
Linguagem C - PonteirosLinguagem C - Ponteiros
Linguagem C - Ponteiros
 
Banco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de DadosBanco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de Dados
 

Similar a Laços de repetição em Java

Laços de repetição como fazer
Laços de repetição como fazerLaços de repetição como fazer
Laços de repetição como fazerRodolfo Fonseca
 
Introdução aos algoritmos e à algoritmia.pptx
Introdução aos algoritmos e à algoritmia.pptxIntrodução aos algoritmos e à algoritmia.pptx
Introdução aos algoritmos e à algoritmia.pptxPaulo Cardoso
 
Aula03 repeticao
Aula03   repeticaoAula03   repeticao
Aula03 repeticaoYuri Passos
 
ICC – Aula 09 – Estrutura de Repetição
ICC – Aula 09 – Estrutura de RepetiçãoICC – Aula 09 – Estrutura de Repetição
ICC – Aula 09 – Estrutura de RepetiçãoFelipe J. R. Vieira
 
ESTRUTURAS_DE_REPETICAO.ppt
ESTRUTURAS_DE_REPETICAO.pptESTRUTURAS_DE_REPETICAO.ppt
ESTRUTURAS_DE_REPETICAO.pptFabianoVilhete3
 
Alg aula 05-2 - estruturas de-repeticao tp1 (para)
Alg   aula 05-2 - estruturas de-repeticao tp1 (para)Alg   aula 05-2 - estruturas de-repeticao tp1 (para)
Alg aula 05-2 - estruturas de-repeticao tp1 (para)Thalles Anderson
 
Curso de python capítulo 1 - introdução
Curso de python   capítulo 1 - introduçãoCurso de python   capítulo 1 - introdução
Curso de python capítulo 1 - introduçãoRicardo Fahham
 
Aula 04 estruturas de repetição
Aula 04   estruturas de repetiçãoAula 04   estruturas de repetição
Aula 04 estruturas de repetiçãoTácito Graça
 

Similar a Laços de repetição em Java (20)

Laços de repetição como fazer
Laços de repetição como fazerLaços de repetição como fazer
Laços de repetição como fazer
 
Laços de repetição
Laços de repetiçãoLaços de repetição
Laços de repetição
 
Introdução aos algoritmos e à algoritmia.pptx
Introdução aos algoritmos e à algoritmia.pptxIntrodução aos algoritmos e à algoritmia.pptx
Introdução aos algoritmos e à algoritmia.pptx
 
Construcao de Algoritmos - Aula 08
Construcao de Algoritmos - Aula 08Construcao de Algoritmos - Aula 08
Construcao de Algoritmos - Aula 08
 
Algoritmos - Aula 07 A - Lacos
Algoritmos - Aula 07 A - LacosAlgoritmos - Aula 07 A - Lacos
Algoritmos - Aula 07 A - Lacos
 
Estrutura de repetição
Estrutura de repetiçãoEstrutura de repetição
Estrutura de repetição
 
Aula03 repeticao
Aula03   repeticaoAula03   repeticao
Aula03 repeticao
 
05 repeticao
05 repeticao05 repeticao
05 repeticao
 
ICC – Aula 09 – Estrutura de Repetição
ICC – Aula 09 – Estrutura de RepetiçãoICC – Aula 09 – Estrutura de Repetição
ICC – Aula 09 – Estrutura de Repetição
 
ESTRUTURAS_DE_REPETICAO.ppt
ESTRUTURAS_DE_REPETICAO.pptESTRUTURAS_DE_REPETICAO.ppt
ESTRUTURAS_DE_REPETICAO.ppt
 
Alg aula 05-2 - estruturas de-repeticao tp1 (para)
Alg   aula 05-2 - estruturas de-repeticao tp1 (para)Alg   aula 05-2 - estruturas de-repeticao tp1 (para)
Alg aula 05-2 - estruturas de-repeticao tp1 (para)
 
Construcao de Algoritmos - Aula 09
Construcao de Algoritmos - Aula 09Construcao de Algoritmos - Aula 09
Construcao de Algoritmos - Aula 09
 
Algoritmos Aula 08
Algoritmos Aula 08Algoritmos Aula 08
Algoritmos Aula 08
 
0001
00010001
0001
 
000003 complexidade
000003 complexidade000003 complexidade
000003 complexidade
 
Analise Algoritmos
Analise AlgoritmosAnalise Algoritmos
Analise Algoritmos
 
02 while
02 while02 while
02 while
 
Curso de python capítulo 1 - introdução
Curso de python   capítulo 1 - introduçãoCurso de python   capítulo 1 - introdução
Curso de python capítulo 1 - introdução
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Aula 04 estruturas de repetição
Aula 04   estruturas de repetiçãoAula 04   estruturas de repetição
Aula 04 estruturas de repetição
 

Más de Sidney Roberto

Precisamos falar sobre MERN stack
Precisamos falar sobre MERN stackPrecisamos falar sobre MERN stack
Precisamos falar sobre MERN stackSidney Roberto
 
Personagens negros na cultura nerd
Personagens negros na cultura nerdPersonagens negros na cultura nerd
Personagens negros na cultura nerdSidney Roberto
 
Mantendo os dados do seu app web offline com PouchDB
Mantendo os dados do seu app web offline com PouchDBMantendo os dados do seu app web offline com PouchDB
Mantendo os dados do seu app web offline com PouchDBSidney Roberto
 
Regulamento da batalha campal do DCN IV
Regulamento da batalha campal do DCN IVRegulamento da batalha campal do DCN IV
Regulamento da batalha campal do DCN IVSidney Roberto
 
Regulamento dos concursos de cosplay e cospobre do DCN IV
Regulamento dos concursos de cosplay e cospobre do DCN IVRegulamento dos concursos de cosplay e cospobre do DCN IV
Regulamento dos concursos de cosplay e cospobre do DCN IVSidney Roberto
 
Regulamento Cosplay e Cospobre - DCN 3 IFMS-AQ
Regulamento Cosplay e Cospobre - DCN 3 IFMS-AQRegulamento Cosplay e Cospobre - DCN 3 IFMS-AQ
Regulamento Cosplay e Cospobre - DCN 3 IFMS-AQSidney Roberto
 
Tecnologias e Mercado de Trabalho
Tecnologias e Mercado de TrabalhoTecnologias e Mercado de Trabalho
Tecnologias e Mercado de TrabalhoSidney Roberto
 
Introdução à Programação de Computadores com Python
Introdução à Programação de Computadores com PythonIntrodução à Programação de Computadores com Python
Introdução à Programação de Computadores com PythonSidney Roberto
 
Palestra de boas vindas aos estudantes do curso TSI do IFMS Aquidauana
Palestra de boas vindas aos estudantes do curso TSI do IFMS AquidauanaPalestra de boas vindas aos estudantes do curso TSI do IFMS Aquidauana
Palestra de boas vindas aos estudantes do curso TSI do IFMS AquidauanaSidney Roberto
 
Web Scraping: aplicações nos negócios e na ciência
Web Scraping: aplicações nos negócios e na ciênciaWeb Scraping: aplicações nos negócios e na ciência
Web Scraping: aplicações nos negócios e na ciênciaSidney Roberto
 
Regulamento do Concurso de Cosplay - Dia da Cultura Nerd IFMS-AQ
Regulamento do Concurso de Cosplay - Dia da Cultura Nerd IFMS-AQRegulamento do Concurso de Cosplay - Dia da Cultura Nerd IFMS-AQ
Regulamento do Concurso de Cosplay - Dia da Cultura Nerd IFMS-AQSidney Roberto
 
Tutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidTutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidSidney Roberto
 
Minha opinião sobre o sistema educacional de base brasileiro
Minha opinião sobre o sistema educacional de base brasileiroMinha opinião sobre o sistema educacional de base brasileiro
Minha opinião sobre o sistema educacional de base brasileiroSidney Roberto
 
Apostila - Linguagem de Programação I
Apostila - Linguagem de Programação IApostila - Linguagem de Programação I
Apostila - Linguagem de Programação ISidney Roberto
 
Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)
Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)
Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)Sidney Roberto
 
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)Sidney Roberto
 
Manipulação de Datas em Java
Manipulação de Datas em JavaManipulação de Datas em Java
Manipulação de Datas em JavaSidney Roberto
 

Más de Sidney Roberto (20)

Precisamos falar sobre MERN stack
Precisamos falar sobre MERN stackPrecisamos falar sobre MERN stack
Precisamos falar sobre MERN stack
 
Personagens negros na cultura nerd
Personagens negros na cultura nerdPersonagens negros na cultura nerd
Personagens negros na cultura nerd
 
Mantendo os dados do seu app web offline com PouchDB
Mantendo os dados do seu app web offline com PouchDBMantendo os dados do seu app web offline com PouchDB
Mantendo os dados do seu app web offline com PouchDB
 
Regulamento da batalha campal do DCN IV
Regulamento da batalha campal do DCN IVRegulamento da batalha campal do DCN IV
Regulamento da batalha campal do DCN IV
 
Regulamento dos concursos de cosplay e cospobre do DCN IV
Regulamento dos concursos de cosplay e cospobre do DCN IVRegulamento dos concursos de cosplay e cospobre do DCN IV
Regulamento dos concursos de cosplay e cospobre do DCN IV
 
Regulamento Cosplay e Cospobre - DCN 3 IFMS-AQ
Regulamento Cosplay e Cospobre - DCN 3 IFMS-AQRegulamento Cosplay e Cospobre - DCN 3 IFMS-AQ
Regulamento Cosplay e Cospobre - DCN 3 IFMS-AQ
 
Tecnologias e Mercado de Trabalho
Tecnologias e Mercado de TrabalhoTecnologias e Mercado de Trabalho
Tecnologias e Mercado de Trabalho
 
Introdução à Programação de Computadores com Python
Introdução à Programação de Computadores com PythonIntrodução à Programação de Computadores com Python
Introdução à Programação de Computadores com Python
 
Palestra de boas vindas aos estudantes do curso TSI do IFMS Aquidauana
Palestra de boas vindas aos estudantes do curso TSI do IFMS AquidauanaPalestra de boas vindas aos estudantes do curso TSI do IFMS Aquidauana
Palestra de boas vindas aos estudantes do curso TSI do IFMS Aquidauana
 
Web Scraping: aplicações nos negócios e na ciência
Web Scraping: aplicações nos negócios e na ciênciaWeb Scraping: aplicações nos negócios e na ciência
Web Scraping: aplicações nos negócios e na ciência
 
Regulamento do Concurso de Cosplay - Dia da Cultura Nerd IFMS-AQ
Regulamento do Concurso de Cosplay - Dia da Cultura Nerd IFMS-AQRegulamento do Concurso de Cosplay - Dia da Cultura Nerd IFMS-AQ
Regulamento do Concurso de Cosplay - Dia da Cultura Nerd IFMS-AQ
 
Tutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidTutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para Android
 
Minha opinião sobre o sistema educacional de base brasileiro
Minha opinião sobre o sistema educacional de base brasileiroMinha opinião sobre o sistema educacional de base brasileiro
Minha opinião sobre o sistema educacional de base brasileiro
 
Apostila - Linguagem de Programação I
Apostila - Linguagem de Programação IApostila - Linguagem de Programação I
Apostila - Linguagem de Programação I
 
Listas (parte 2 de 3)
Listas (parte 2 de 3)Listas (parte 2 de 3)
Listas (parte 2 de 3)
 
Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)
Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)
Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)
 
Listas (parte 1)
Listas (parte 1)Listas (parte 1)
Listas (parte 1)
 
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
 
Fatores Humanos
Fatores HumanosFatores Humanos
Fatores Humanos
 
Manipulação de Datas em Java
Manipulação de Datas em JavaManipulação de Datas em Java
Manipulação de Datas em Java
 

Laços de repetição em Java

  • 1. Tecnologia em Sistemas para Internet - IFMS Aula Extra – Laços de Repetição Tópicos em Programação Prof.º Msc. Sidney Roberto de Sousa
  • 2. Tec. em Sistemas para Internet - IFMS 2 O 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. Tec. em Sistemas para Internet - IFMS 3 Problema ● Imagine que devemos resolver o seguinte problema: Escreva um programa para imprimir na tela a sequência de 1 até 4 em uma mesma linha. ● Parece simples!
  • 4. Tec. em Sistemas para Internet - IFMS 4 Solução System.out.println(“1 2 3 4”);
  • 5. Tec. em Sistemas para Internet - IFMS 5 Problema ● Agora, vamos redefinir o nosso problema: Escreva um programa que leia do usuário um valor inteiro positivo n e imprima na tela a sequência de 1 até n em uma mesma linha. ● Vamos tentar resolver este problema utilizando a mesma “estratégia” da solução anterior (que eu batizei de solução “não muito inteligente”...)
  • 6. Tec. em Sistemas para Internet - IFMS 6 Soluçã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. Tec. em Sistemas para Internet - IFMS 7 Analisando 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 o problema para qualquer número positivo que o usuário digitar? ● Precisamos escrever um código que seja capaz de imprimir todos os números da sequência, porém utilizando um número fixo e mínimo de linhas de código ● Para tanto, precisamos de alguma forma escrever um código que repita a impressão dos números de forma categórica e estratégica ● Solução inteligente: utilizar um laço de repetição!
  • 8. Tec. em Sistemas para Internet - IFMS 8 Solução utilizando o laço while Classe ExemploWhile (abaixo no blog)
  • 9. Tec. em Sistemas para Internet - IFMS 9 Analisando a solução com o laço while int contador = 1; while (contador <= n) {     System.out.print(contador + " ");     contador++; }
  • 10. Tec. em Sistemas para Internet - IFMS 10 Analisando a solução com o laço while int contador = 1; while (contador <= n) {     System.out.print(contador + " ");     contador++; } Enquanto...
  • 11. Tec. em Sistemas para Internet - IFMS 11 Analisando a solução com o laço while int contador = 1; while (contador <= n) {     System.out.print(contador + " ");     contador++; } Enquanto o valor da variável contador for menor ou igual ao valor da variável n...
  • 12. Tec. em Sistemas para Internet - IFMS 12 Analisando a solução com o laço while int contador = 1; while (contador <= n) {     System.out.print(contador + " ");     contador++; } Enquanto o valor da variável contador for menor ou igual ao valor da variável n, repita a execução do código localizado entre as chaves.
  • 13. Tec. em Sistemas para Internet - IFMS 13 Analisando a solução com o laço while int contador = 1; while (contador <= n) {     System.out.print(contador + " ");     contador++; } A variável contador é inicializada com o valor 1, que é o primeiro valor que o nosso programa deve imprimir...
  • 14. Tec. em Sistemas para Internet - IFMS 14 Analisando a solução com o laço while int 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ável contador é incrementado em uma unidade. Assim, na próxima iteração, o valor a ser impresso é uma unidade maior que o valor atual.
  • 15. Tec. em Sistemas para Internet - IFMS 15 Sobre o laço while... ● O laço while só é executado se e somente se a sua condição lógica de manutenção for satisfeita ● Assim, para que um laço while execute ao menos uma iteração, a sua condição lógica de manutenção deve ser satisfeita ao menos uma vez
  • 16. Tec. em Sistemas para Internet - IFMS 16 Solução utilizando o laço do while Classe ExemploDoWhile (abaixo no blog)
  • 17. Tec. em Sistemas para Internet - IFMS 17 Analisando a solução com o laço do while int contador = 0; do {     contador++;     System.out.print(contador + " "); } while (contador < n);
  • 18. Tec. em Sistemas para Internet - IFMS 18 Analisando a solução com o laço do while int contador = 0; do {     contador++;     System.out.print(contador + " "); } while (contador < n); Repita...
  • 19. Tec. em Sistemas para Internet - IFMS 19 Analisando a solução com o laço do while int contador = 0; do {     contador++;     System.out.print(contador + " "); } while (contador < n); Repita a execução do trecho de código localizado entre as chaves...
  • 20. Tec. em Sistemas para Internet - IFMS 20 Analisando a solução com o laço do while int contador = 0; do {     contador++;     System.out.print(contador + " "); } while (contador < n); Repita a execução do trecho de código localizado entre as chaves enquanto o valor da variável contador for menor que o valor da variável n.
  • 21. Tec. em Sistemas para Internet - IFMS 21 Analisando a solução com o laço do while int 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 a ser impresso, porém...
  • 22. Tec. em Sistemas para Internet - IFMS 22 Analisando a solução com o laço do while int contador = 0; do {     contador++;     System.out.print(contador + " "); } while (contador < n); … no início de cada iteração, o valor da variável contador é incrementado em uma unidade. Logo em seguida, o valor correto é impresso na tela.
  • 23. Tec. em Sistemas para Internet - IFMS 23 Analisando a solução com o laço do while int contador = 0; do {     contador++;     System.out.print(contador + " "); } while (contador < n); O laço é executado até que o valor da variável contador seja menor que o valor da variável n. Isto parece um tanto anti-intuitivo no início mas, se você analisar o código acima, você verá que esta condição se deve ao fato de que o incremento do valor da variável contador é realizado antes de que este seja impresso na tela.
  • 24. Tec. em Sistemas para Internet - IFMS 24 Sobre o laço do while... ● O laço do while sempre executa ao menos uma iteração ● Assim, para que um laço do while execute após a primeira iteração, a sua condição lógica de manutenção deve ser satisfeita ao menos uma vez
  • 25. Tec. em Sistemas para Internet - IFMS 25 Solução utilizando o laço for Classe ExemploFor (abaixo no blog)
  • 26. Tec. em Sistemas para Internet - IFMS 26 Analisando a solução com o laço for for(int contador = 1; contador <= n; contador++) {     System.out.print(contador + " "); }
  • 27. Tec. em Sistemas para Internet - IFMS 27 Analisando a solução com o laço for for(int contador = 1; contador <= n; contador++) {     System.out.print(contador + " "); } Para...
  • 28. Tec. em Sistemas para Internet - IFMS 28 Analisando a solução com o laço for for(int contador = 1; contador <= n; contador++) {     System.out.print(contador + " "); } Para o valor de contador partindo de 1...
  • 29. Tec. em Sistemas para Internet - IFMS 29 Analisando a solução com o laço for for(int contador = 1; contador <= n; i++) {     System.out.print(contador + " "); } Para o valor de contador partindo de 1 até atingir o valor de n..
  • 30. Tec. em Sistemas para Internet - IFMS 30 Analisando a solução com o laço for for(int contador = 1; contador <= n; contador++) {     System.out.print(contador + " "); } Para o valor de contador partindo de 1 até atingir o valor de n, incrementando o valor de contador em uma unidade a cada iteração...
  • 31. Tec. em Sistemas para Internet - IFMS 31 Analisando a solução com o laço for for(int contador = 1; contador <= n; contador++) {     System.out.print(contador + " "); } Para o valor de contador partindo de 1 até atingir o valor de n, incrementando o valor de contador em uma unidade a cada iteração, repita o trecho de código entre as chaves.
  • 32. Tec. em Sistemas para Internet - IFMS 32 Analisando a solução com o laço for for(int contador = 1; contador <= n; contador++) {     System.out.print(contador + " "); } O primeiro argumento de um laço for contém as inicializações desejadas para o laço. No caso, a variável contador é inicializada com o valor 1. Esta inicialização é executada somente uma vez, antes mesmo da execução da primeira iteração do laço.
  • 33. Tec. em Sistemas para Internet - IFMS 33 Analisando a solução com o laço for for(int contador = 1; contador <= n; contador++) {     System.out.print(contador + " "); } O segundo argumento de um laço for é a condição lógica de manutenção do laço. Ou seja, é o teste lógico realizado antes de cada iteração para avaliar se a iteração deve ser executada ou se o laço deve parar de executar iterações. No caso, o laço executará enquanto o valor da variável contador for menor ou igual ao valor da variável n.
  • 34. Tec. em Sistemas para Internet - IFMS 34 Analisando a solução com o laço for for(int contador = 1; contador <= n; contador++) {     System.out.print(contador + " "); } O terceiro e último argumento de um laço for contém o código a ser executado no final de cada iteração. No caso, após o valor da variável contador ser exibido, ele é incrementado em uma unidade.
  • 35. Tec. em Sistemas para Internet - IFMS 35 Ordem de execução for(int contador = 1; contador <= n; contador++) {     System.out.print(contador + " "); } Executado somente uma vez, antes do laço for começar a executar a primeira iteração.
  • 36. Tec. em Sistemas para Internet - IFMS 36 Ordem de execução for(int contador = 1; contador <= n; contador++) {     System.out.print(contador + " "); } Executado sempre, antes da execução de cada iteração.
  • 37. Tec. em Sistemas para Internet - IFMS 37 Ordem de execução for(int contador = 1; contador <= n; contador++) {     System.out.print(contador + " "); } Executado sempre, após a execução de cada iteração.
  • 38. Tec. em Sistemas para Internet - IFMS 38 Exemplo laço for Para um exemplo mais complexo, veja a classe ExemploFor2 (abaixo no blog)
  • 39. Tec. em Sistemas para Internet - IFMS 39 That's all, folks! Quaisquer dúvidas, chore fale comigo em sala de aula ou me mande um e-mail: sidney.sousa@ifms.edu.br