SlideShare uma empresa Scribd logo
1 de 36
Baixar para ler offline
Curso de Java
PARTE 03
Estruturas da Linguagem
Classes Wrappers
Operadores Relacionais/Lógicos
Estruturas de Decisão
Estruturas de Repetição
Coleções: List e Map
por: Mário Sergio
mariosergio30@gmail.com
linkedin.com/in/mario-sergio-a1125831
Classes Wrappers (java.lang)
As Classe envólucro (Wrappers) : encapsulam tipos primitivos
Todas essas Classes possuem o método toString() para realizar a
operação inversa, entre outros métodos úteis.
Métodos de conversão a partir de uma String
Ex: Double numero = Double.parseDouble("13.5");
Lembre-se: F1 – para ajuda on-line
Métodos da Classe String
3
Exemplos:
texto.equals(“Accenture");
texto.equalsIgnoreCase(“accenture");
texto.trim();
texto.toUpperCase();
texto.toLowerCase();
texto.contains(“Accenture");
texto.replace(“Brasil",“Japão");
texto.substring(5, 8);
texto.length();
texto.charAt(0);
texto.indexOf("t");
Principais métodos da classe String
https://www.devmedia.com.br/java-string-manipulando-metodos-da-classe-string/29862
Saber mais:
Todos esses métodos retornam valores !
Quais são esses valores para a string abaixo ???
String texto = "Accenture do Brasil";
// Meu Segundo Programa JAVA
// Trabalhando com Números e Operadores Aritméticos
// Baseado em Deitel & Deitel, 2003
// Pacote de extensão Java
import javax.swing.JOptionPane; // import class JOptionPane
public class Adicao {
public static void main( String args[] ) {
String primeiroNumero;// 1o string informado pelo usuário
String segundoNumero; // 2o string informado pelo usuário
int numero1; // primeiro operando da adição
int numero2; // segundo operando da adição
int media; // Resultado da Adição
// ler o primeiro número (na forma string)
primeiroNumero = JOptionPane.showInputDialog("Digite o Primeiro No Inteiro" );
// ler o segundo número (na forma string)
segundoNumero = JOptionPane.showInputDialog( "Digite o Segundo No Inteiro" );
// convertendo os strings em números inteiros
numero1 = Integer.parseInt(primeiroNumero);
numero2 = Integer.parseInt(segundoNumero);
// Somando os números
media = (numero1 + numero2)/2;
// Apresentando os resultados
JOptionPane.showMessageDialog(null, "A media é "+media,"Resultado da media: ",
JOptionPane.PLAIN_MESSAGE);
} // fim do método main()
} // fim da classe Adicao
4
Diálogos com javax.swing
O Pacote swing possui uma biblioteca de Classes para interface
gráfica com o usuário GUI, por enquanto utilizaremos apenas a
classe JOptionPane que oferece caixas de diálogo gráficas
predefinidas que permitem aos programas exibir mensagens aos
usuários:
- O método showMessageDialog() ebite um aviso com inteface gráfica para o
usuário.
- O método showConfirmDialog exibe uma pergunta ao usuário com bobões
OK, NÃO E CANCELAR, e retorna um código de resposta clicada pelo
usuário.
- O método showInputDialog() combina a montagem da janela de edição com
o prompt de digitação do string fornecido pelo usuário.
- As variáveis informadas pelo showInputDialog() aos programas Java são
sempre Strings e devem ser convertidas com o uso das classes wrappers
do pacote java.lang.
5
Diálogos com javax.swing
Mãos à Obra
6
Com base no exercício anterior,
melhore seu “Sistema Escolar”,
Utilize JOptionPane para todas as ações
de interface com usuário.
Operadores de Igualdade e Relacionais
• Todos os operadores relacionais têm o mesmo nível de precedência e associam
da esquerda para a direita.
• São largamente utilizados nas estruturas de controle de decisão e repetição.
• Resultam SEMPRE em um valor lógico, que pode ser atribuido a uma variável do
tipo booleano, ex.:
Operadoralgébricode
igualdadepadrãoou
operador relacional
Operadordeigualdadeou
relacionalemJava
Exemplode
condiçãoemJava
Significadoda
condiçãoemJava
Operadoresdeigualdade
= == x==y xéigualay
<> != x!=y xnãoéigualay
Operadoresrelacionais
> > x>y xémaiorquey
< < x<y xémenorquey
= >= x>=y
xémaiorqueou
igualay
= <= x<=y
xémenorqueou
igualay
7
boolean lAprovado = (media >= 6);
Estruturas de Controle Condicional
8
Também conhecidas como estruturas
decisão, seleção ou de desvio de fluxo.
Seleção
Simples/Composta/Encadeada
Immediate IF
Seleção Múltipla
Estrutura Condicional: if
Sintaxe
if (condição)
comando Java;
[ou {bloco de comandos Java;}]
O Exemplo:
if (media >= 6)
System.out.println(“Aprovado”);
if (media >= 6) {
System.out.print(“Oi Fulano !”);
System.out.println(“Você foi Aprovado”);
} // fim do bloco if
Media >=6 Imprimir “Aprovado”
verdadeiro
falso
9
// Instrução de apenas 1 linha
if (media >= 6){
System.out.print(“O Aluno está”);
System.out.println(“Aprovado”);
} // fim do bloco if
else {
System.out.print(“O Aluno está”);
System.out.println(“Reprovado”);
} // fim do bloco else
Media >=6 Imprimir “Aprovado”
verdadeiro
falso
Imprimir “Reprovado”
10
Estrutura Condicional: if/else
if (media >= 9)
System.out.print(“O Conceito é A”);
else if (media >= 7)
System.out.print(“O Conceito é B”);
else if (media >= 6)
System.out.print(“O Conceito é C”);
else
System.out.print(“O Conceito é D”);
Media >=9 A
verdadeiro
falso
Media >=7 B
verdadeiro
falso
Media >=6 C
verdadeiro
D
falso
Estrutura Condicional: if/else (encadeada)
Mãos à Obra
12
Com base no exercício anterior,
melhore seu “Sistema Escolar”,
informando o resultado final do aluno,
conforme os critérios:
Média:
maior ou igual a 7 - Aprovado
de 4 a 6.9999999.. - Recuperação (não usar operador lógico)
menor que 4 - Reprovado
Operadores de Lógicos
13
Operadores lógicos são largamente utilizados em conjunto com estruturas de controle condicionais.
https://www.tutorialgateway.org/java-logical-operators/
Saber mais:
considerando:
int age;
boolean aprovado;
Lógica Proposicional: Tabela Verdade
Ex: temos as proposições A e B
A: Brasília é a capital do Brasil E B: Lima é a capital do Peru.
A: Gato é um Animal E B: Peixe é um mamífero.
A: Recife é um pais OU B: Olinda é uma cidade
NÃO A: O Japão fica na Ásia
14
Relembrando: Tabela Verdade
Para quem tem
dúvidas...
https://www.tutorialgateway.org/java-logical-operators/
Saber mais:
Mãos à Obra
15
Com base no exercício anterior,
melhore seu “Sistema Escolar”,
adicionando os critérios:
Quantidade de Faltas e trabalho noturno:
Só é permitido ficar em Recuperação se
a quantidade de faltas for menor que 10.
Só é permitido ser aprovado com nota 7
se o aluno tiver menos que 3 faltas ou
comprovar que trabalha a noite. Caso
contrário, só será aprovado direto
com média a partir de 9.
Precedência de operadores
Operadores de Lógicos
Em proposições compostas, é importante respeitarmos a ordem de precedência natural dos operadores:
1º: operador !
2º: conectivo &&
3º: conectivo ||
Portanto, quando desejarmos alterar a ordem das comparações, devemos utilizar parênteses ( )
16
Assim temos: double media = 6.0;
int qtdFaltas = 5;
boolean lTrabalhoNoturno = true;
if (media >= 7 && qtdFaltas < 3 || lTrabalhoNoturno)
resultado = "Aprovado";
if ( (media >= 7) && (qtdFaltas < 3 || lTrabalhoNoturno) )
resultado = "Aprovado";
F F
F F
V
V
F
V
V
F
||
&&
V
F
* Teriamos
aluno aprovado
com média 6 !
• Resultado correto
de acordo com
o problema
proposto
Estrutura Condicional: Immediate-IF
(condição) ? {valor para condição true} : {valor para condição false}
Exemplos:
O operador Ternário ? : retorna um valor dependendo do resultado da condição
17
resultado = (media >= 6) ? "Aprovado" : "Reprovado";
System.out.println((media >= 6) ? "Aprovado" : "Reprovado");
Sintaxe:
Equivalente a: if (media >= 6)
resultado = "Aprovado";
else
resultado = "Reprovado";
Também conhecido como estrutura de seleção múltipla
• O valor a ser testado (condicional) aparece apenas uma vez, diferentemente do que ocorreria com
multiplos if else
• Utilize o comando break para finalizar a execução do switch quando um dos case´s for atendido,
caso contrário, todos os blocos case abaixo serão também executados.
18
Estrutura Condicional: switch / case
É OPCIONAL
Mãos à Obra
19
Baseado no exemplo anterior, crie um novo programa: “Calculadora”
Utilizando a estrutura de seleção múltipla
switch (key) {
case value:
break;
default:
break;
}
20
Estrutura Condicional: switch / case
Um motivo para não usar break
Estruturas de Controle de Repetição
21
Executa trechos de código repetidamente (loops).(lo
Principais Tipos de estruturas de repetição:
- Repetição condicional (indefinida)
while (condition) {
}
Com teste lógico no início
Com teste lógico no final (executa ao menos 1 vez)
Iteração contada
Iteração sobre elementos de uma lista
considerando:
do {
} while (condition);
- Repetição contada (definida) Número pré-determinado
for (int i = 0; condintion over i; i++) {
}
for (String item : list) {
}
List<String> list;
• Essas estruturas de repetição permitem especificar uma ação ou um bloco de ações que devem
permanecer sendo repetidas enquanto determinada condição for verdadeira.
• O corpo da estrutura pode ser uma instrução única ou um bloco de comandos.
• Quando a condição do comando while ou do/while se tornar falsa, a ação (ou bloco) do comando será
pulada. O programa continuará com a ação imediatamente após o comando while.
• IMPORTANTE: você deve sempre prever a ação que tornará falsa a condição do comando while. Caso
contrário seu programa entrará em loop infinito.
22
Estrutura de Repetição: while e do/while
Pode nunca ser executado
boolean lTemVida = true;
while (lTemVida) {
System.out.println("Há Esperança !");
}
int nQtdvidas = 7;
do {
System.out.println("Há Esperança !");
} while (nQtdvidas > 0);
Será executado ao menos 1 vez
Nesses dois exemplos temos problema de looping infinito, pois o valor da VARIAVEL DE CONTROLE não
está sendo alterado dentro do escopo da estrutura.
Mãos à Obra
23
Com base no exercício anterior,
melhore seu “Sistema Escolar”:
Após a exibição do resultado da média do primeiro aluno,
pergunte ao usuário se ele deseja digitar
dados para um novo aluno.
Obs: por enquanto não se preocupe
em armazenar o histórico de todos
alunos/médias
• A estrutura de repetição for permite repetir uma ação ou um bloco de ações em um número definido
de vezes.
• O comando for possui três seções:
24
Estrutura de Repetição: for
for (int x = 0; x < 1000; x++) {
System.out.println("Repetição de numero: " + x);
}
Chamada de Variável de Controle
Será executada EXATAMENTE 1000 vezes
for (inicializadores; condição de continuação; incremento)
{
ação ou bloco de ações no comando;
}
Mãos à Obra
25
Com base no exercício anterior,
melhore seu “Sistema Escolar”:
Precisamos obter mais notas para compor a média, não apenas duas.
Assim, antes de digitar as notas
o usuário precisará informar
quantas notas ele pretende digitar
para cálculo da média do aluno.
Obs: por enquanto não se preocupe
em armazenar o histórico de todos
alunos/médias
Coleções: Listas (java.util.List)
• Uma Lista representa uma coleção de objetos, sendo mais flexivel que
os arrays pois podem variar de tamanho dinamicamente.
- Permitem elementos duplicados
- Permitem valores nulos
- Mantém uma ordenação posicional (por índice)
List<String> listaEstados = new ArrayList<String>();
listaEstados.add("São Paulo");
listaEstados.add("Rio de Janeiro");
listaEstados.add("Minas Gerais");
System.out.println("Segundo elemento da lista :" + listaEstados.get(1));
26https://www.caelum.com.br/apostila-java-orientacao-objetos/collections-framework/
Saber mais:
Exemplos:
Métodos da classe List:
add – Adiciona um item no final da coleção
get – retorna (pega) um item em determinada posição
set – altera o valor de um item em uma determinada posição
size – retona o tamanho atual da coleção
clone – Duplica a ArrayList
contains – busca um valor no array, e retorna true, se o elemento estiver no array;
indexOf – busca um valor no array, mas retorna o índice do elemento encontrado;
lastIndexOf – o mesmo que indexOf mas retorna o último elemento encontrado;
remove – Remove um item da coleção.
27Lembre-se: F1 – para ajuda on-line
Coleções: Listas (java.util.List)
A estrutura de repetição for também permite realizar iterações sobre elementos de uma lista de uma
forma mais direta, sem a necessidade de uma variavel de controle (contador).
28
Estrutura de Repetição: for (com listas)
Para cada iteração, o próximo item da
lista é colocado na variável item,
seguindo a ordem que o item ocupa na
lista (índice).
for (String item : list) {
System.out.println(“Item da lista: " + item);
}
List<String> list;
List<String> listFrutas = new ArrayList<String>();
listFrutas.add("Morango");
listFrutas.add("Abacaxi");
listFrutas.add("Uva");
System.out.println("<<<< Lista de Frutas >>>>>>>");
for (String umaFruta : listFrutas)
System.out.println("Fruta: " + umaFruta);
Exemplo:
Mãos à Obra
29
Com base no exercício anterior,
melhore seu “Sistema Escolar”,
1- Guardar o histórico dos alunos:
nomes, médias, idades, e escolaridade
dos alunos, em quatro objetos do tipo List.
2- Mostrar relatório com nomes, médias, idades,
e escolaridade de TODOS os alunos
no final da execução do programa.
Obs: A escolaridade tem como dominio:
FUNDAMENTAL
MEDIO
SUPERIOR
• Um Map representa uma coleção de objetos, numa estrutura (key,value).
Também conhecida como um PAR (chave,valor). Assim como as listas, podem
variar de tamanho dinamicamente.
- Não permitem elementos duplicados
- Permitem apenas um valor nulo
- Não mantem uma ordenação posicional
- Encontra um valor a partir de sua chave
30
Exemplos:
Map<String,String> mapContatos = new HashMap<>();
mapContatos.put("Tom", "(111)123-4567");
mapContatos.put("Dick", "(222)123-7890");
mapContatos.put("Harry", "(333)373-3703");
String fone = mapContatos.get("Dick");
Coleções: Mapas (java.util.Map)
(222)123-7890
Valor retornado:
31
Iteração sobre todos os elementos de um Map:
for (Map.Entry<String,String> umContato : mapContatos.entrySet()) {
System.out.println("Chave: " + umContato.getKey());
System.out.println("Valor: " + umContato.getValue());
System.out.println("--------------------------------");
}
Coleções: Mapas (java.util.Map)
Busca por uma chave em um Map:
if (mapContatos.containsKey("Harry"))
System.out.println("Telefone:" + mapContatos.get("Harry"));
Telefone: (333)373-3703
saída
Mãos à Obra
32
Com base no exercício anterior,
melhore seu “Sistema Escolar”,
1- Precisamos incluir permissões de acesso para usar o
Sistema escolar. Desejamos que os funcionarios da escola
Realizem login, utilizando usuario e senha antes de iniciar o
cadastro dos alunos.
Dica: Utilize um Map pré-cadastrado (hard-code)
para cadastrar os acessos:
Ex: Chave/valor -> Usuario/senha
PROFESSOR->25413
DIRETOR->felicidade
SECRETARIA->amor1000
COORDENADOR->2018
Instruções: break e continue
• As instruções break e continue modificam o comportamento das estruturas de repetição while, for,
do/while ou switch. .
• A instrução break interrompe o laço (no caso das estruturas de repetição) e impede a execução de
outros casos de um comando switch.
• A instrução continue permite o salto do conjunto de operações, com retorno à expressão condicional
do laço, reiniciando o mesmo (portanto, ao contrário do break, não interrompe o laço).
33
Instruções: break e continue
34
Obrigado !
Referências
Programação de computadores
em Java
Rui Rossi dos Santos
Java 8: Programação de
Computadores - Guia Prático de
Introdução, Orientação e
Desenvolvimento - José Augusto
N. G. Manzano
Slides do Prof. Roberto Pacheco
INE – CTC – UFSC

Mais conteúdo relacionado

Mais procurados

Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a ObjetosIgor Takenami
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
[Curso Java Basico] Aula 14: Condicionais If-Else
[Curso Java Basico] Aula 14: Condicionais If-Else[Curso Java Basico] Aula 14: Condicionais If-Else
[Curso Java Basico] Aula 14: Condicionais If-ElseLoiane Groner
 
Logica programacao python-slides
Logica programacao python-slidesLogica programacao python-slides
Logica programacao python-slidesronaldo ramos
 
aula 04 - Logica de programacao
aula 04 - Logica de programacaoaula 04 - Logica de programacao
aula 04 - Logica de programacaoAislan Rafael
 
[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributos
[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributos[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributos
[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributosLoiane Groner
 
Java básico - Módulo 04: Estruturas de controle
Java   básico - Módulo 04:  Estruturas de controleJava   básico - Módulo 04:  Estruturas de controle
Java básico - Módulo 04: Estruturas de controleProfessor Samuel Ribeiro
 
[Curso Java Basico] Aula 20: Arrays multidimensionais - Matrizes
[Curso Java Basico] Aula 20: Arrays multidimensionais - Matrizes[Curso Java Basico] Aula 20: Arrays multidimensionais - Matrizes
[Curso Java Basico] Aula 20: Arrays multidimensionais - MatrizesLoiane Groner
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaDaniel Brandão
 
Modelo entidade relacionamento
Modelo entidade relacionamentoModelo entidade relacionamento
Modelo entidade relacionamentoCarlos Melo
 
Java orientação a objetos (variaveis de instancia e metodos)
Java   orientação a objetos (variaveis de instancia e metodos)Java   orientação a objetos (variaveis de instancia e metodos)
Java orientação a objetos (variaveis de instancia e metodos)Armando Daniel
 
Algoritmos 1 - Semana 2
Algoritmos 1 - Semana 2Algoritmos 1 - Semana 2
Algoritmos 1 - Semana 2Eder Samaniego
 
Algoritmos e Programação: Estruturas de repetição
Algoritmos e Programação: Estruturas de repetiçãoAlgoritmos e Programação: Estruturas de repetição
Algoritmos e Programação: Estruturas de repetiçãoAlex Camargo
 
Blockchain no setor elétrico: conceitos, potenciais aplicações e iniciativas
Blockchain no setor elétrico: conceitos, potenciais aplicações e iniciativasBlockchain no setor elétrico: conceitos, potenciais aplicações e iniciativas
Blockchain no setor elétrico: conceitos, potenciais aplicações e iniciativasJosé Reynaldo Formigoni Filho, MSc
 

Mais procurados (20)

Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
[Curso Java Basico] Aula 14: Condicionais If-Else
[Curso Java Basico] Aula 14: Condicionais If-Else[Curso Java Basico] Aula 14: Condicionais If-Else
[Curso Java Basico] Aula 14: Condicionais If-Else
 
Logica programacao python-slides
Logica programacao python-slidesLogica programacao python-slides
Logica programacao python-slides
 
POO - 14 - Vetores
POO - 14 - VetoresPOO - 14 - Vetores
POO - 14 - Vetores
 
PHP - Introdução
PHP - IntroduçãoPHP - Introdução
PHP - Introdução
 
aula 04 - Logica de programacao
aula 04 - Logica de programacaoaula 04 - Logica de programacao
aula 04 - Logica de programacao
 
[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributos
[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributos[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributos
[Curso Java Basico - Orientacaoo a Objetos] Aula 24: Classes e atributos
 
Linguagem C - Estruturas
Linguagem C - EstruturasLinguagem C - Estruturas
Linguagem C - Estruturas
 
Java básico - Módulo 04: Estruturas de controle
Java   básico - Módulo 04:  Estruturas de controleJava   básico - Módulo 04:  Estruturas de controle
Java básico - Módulo 04: Estruturas de controle
 
POO - 16 - Polimorfismo
POO - 16 - PolimorfismoPOO - 16 - Polimorfismo
POO - 16 - Polimorfismo
 
[Curso Java Basico] Aula 20: Arrays multidimensionais - Matrizes
[Curso Java Basico] Aula 20: Arrays multidimensionais - Matrizes[Curso Java Basico] Aula 20: Arrays multidimensionais - Matrizes
[Curso Java Basico] Aula 20: Arrays multidimensionais - Matrizes
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - Herança
 
Manual de portugol
Manual de portugolManual de portugol
Manual de portugol
 
Modelo entidade relacionamento
Modelo entidade relacionamentoModelo entidade relacionamento
Modelo entidade relacionamento
 
Java orientação a objetos (variaveis de instancia e metodos)
Java   orientação a objetos (variaveis de instancia e metodos)Java   orientação a objetos (variaveis de instancia e metodos)
Java orientação a objetos (variaveis de instancia e metodos)
 
Algoritmos 1 - Semana 2
Algoritmos 1 - Semana 2Algoritmos 1 - Semana 2
Algoritmos 1 - Semana 2
 
Algoritmos e Programação: Estruturas de repetição
Algoritmos e Programação: Estruturas de repetiçãoAlgoritmos e Programação: Estruturas de repetição
Algoritmos e Programação: Estruturas de repetição
 
Blockchain no setor elétrico: conceitos, potenciais aplicações e iniciativas
Blockchain no setor elétrico: conceitos, potenciais aplicações e iniciativasBlockchain no setor elétrico: conceitos, potenciais aplicações e iniciativas
Blockchain no setor elétrico: conceitos, potenciais aplicações e iniciativas
 
A Linguagem sql
A Linguagem sqlA Linguagem sql
A Linguagem sql
 

Semelhante a Java Curso Estruturas Decisão Repetição

Semelhante a Java Curso Estruturas Decisão Repetição (20)

Java3
Java3Java3
Java3
 
Lógica de programação
Lógica de programaçãoLógica de programação
Lógica de programação
 
Aula3
Aula3Aula3
Aula3
 
DOJO - TDD com C++
DOJO - TDD com C++DOJO - TDD com C++
DOJO - TDD com C++
 
TDD em C++
TDD em C++TDD em C++
TDD em C++
 
Aula 1 2
Aula 1 2Aula 1 2
Aula 1 2
 
Conceitos base de programação - parte 2
Conceitos base de programação - parte 2Conceitos base de programação - parte 2
Conceitos base de programação - parte 2
 
Estrutura de linguagem C++
Estrutura de linguagem C++Estrutura de linguagem C++
Estrutura de linguagem C++
 
Estrutura de decisão switch case
Estrutura de decisão switch caseEstrutura de decisão switch case
Estrutura de decisão switch case
 
If
IfIf
If
 
Linguagens de Programação II - Aula 3
Linguagens de Programação II - Aula 3Linguagens de Programação II - Aula 3
Linguagens de Programação II - Aula 3
 
modulo1.pdf
modulo1.pdfmodulo1.pdf
modulo1.pdf
 
Aula 1 | Introdução a C++
Aula 1 | Introdução a C++Aula 1 | Introdução a C++
Aula 1 | Introdução a C++
 
2019-2 - Algoritmos - Aula 06 A - Tomada de Decisão
2019-2 - Algoritmos - Aula 06 A - Tomada de Decisão2019-2 - Algoritmos - Aula 06 A - Tomada de Decisão
2019-2 - Algoritmos - Aula 06 A - Tomada de Decisão
 
Algoritmos Aula 08
Algoritmos Aula 08Algoritmos Aula 08
Algoritmos Aula 08
 
Refatoração e Boas Práticas no Desenvolvimento de Software com a Linguagem Ja...
Refatoração e Boas Práticas no Desenvolvimento de Software com a Linguagem Ja...Refatoração e Boas Práticas no Desenvolvimento de Software com a Linguagem Ja...
Refatoração e Boas Práticas no Desenvolvimento de Software com a Linguagem Ja...
 
Java script2
Java script2Java script2
Java script2
 
Semana 04 Estruturas Condicionais
Semana 04   Estruturas CondicionaisSemana 04   Estruturas Condicionais
Semana 04 Estruturas Condicionais
 
Repetições e vetores
Repetições e vetoresRepetições e vetores
Repetições e vetores
 
Java básico - Módulo 05 - Estruturas de Repetição
Java  básico - Módulo 05 - Estruturas de RepetiçãoJava  básico - Módulo 05 - Estruturas de Repetição
Java básico - Módulo 05 - Estruturas de Repetição
 

Mais de Mario Sergio

Curso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service RESTCurso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service RESTMario Sergio
 
Curso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationCurso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationMario Sergio
 
Curso de Java (Parte 6) Introdução a Front-end
Curso de Java (Parte 6) Introdução a Front-endCurso de Java (Parte 6) Introdução a Front-end
Curso de Java (Parte 6) Introdução a Front-endMario Sergio
 
Curso de Java (Parte 5)
Curso de Java (Parte 5)Curso de Java (Parte 5)
Curso de Java (Parte 5)Mario Sergio
 
Introdução a Banco de Dados (Parte 3)
Introdução a Banco de Dados (Parte 3)Introdução a Banco de Dados (Parte 3)
Introdução a Banco de Dados (Parte 3)Mario Sergio
 
Introdução a Banco de Dados (Parte 2)
Introdução a Banco de Dados (Parte 2)Introdução a Banco de Dados (Parte 2)
Introdução a Banco de Dados (Parte 2)Mario Sergio
 
Introdução a Banco de Dados (Parte 1)
Introdução a Banco de Dados (Parte 1)Introdução a Banco de Dados (Parte 1)
Introdução a Banco de Dados (Parte 1)Mario Sergio
 
Comparação Sintaxe Portugol vs Java
Comparação Sintaxe Portugol vs JavaComparação Sintaxe Portugol vs Java
Comparação Sintaxe Portugol vs JavaMario Sergio
 
Curso de Java (Parte 1)
Curso de Java (Parte 1)Curso de Java (Parte 1)
Curso de Java (Parte 1)Mario Sergio
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à ProgramaçãoMario Sergio
 
Bancode dados modelagem conceitual
Bancode dados modelagem conceitualBancode dados modelagem conceitual
Bancode dados modelagem conceitualMario Sergio
 
Educação Tecnológica com Raspberry Pi
Educação Tecnológica com Raspberry PiEducação Tecnológica com Raspberry Pi
Educação Tecnológica com Raspberry PiMario Sergio
 

Mais de Mario Sergio (12)

Curso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service RESTCurso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service REST
 
Curso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationCurso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web Application
 
Curso de Java (Parte 6) Introdução a Front-end
Curso de Java (Parte 6) Introdução a Front-endCurso de Java (Parte 6) Introdução a Front-end
Curso de Java (Parte 6) Introdução a Front-end
 
Curso de Java (Parte 5)
Curso de Java (Parte 5)Curso de Java (Parte 5)
Curso de Java (Parte 5)
 
Introdução a Banco de Dados (Parte 3)
Introdução a Banco de Dados (Parte 3)Introdução a Banco de Dados (Parte 3)
Introdução a Banco de Dados (Parte 3)
 
Introdução a Banco de Dados (Parte 2)
Introdução a Banco de Dados (Parte 2)Introdução a Banco de Dados (Parte 2)
Introdução a Banco de Dados (Parte 2)
 
Introdução a Banco de Dados (Parte 1)
Introdução a Banco de Dados (Parte 1)Introdução a Banco de Dados (Parte 1)
Introdução a Banco de Dados (Parte 1)
 
Comparação Sintaxe Portugol vs Java
Comparação Sintaxe Portugol vs JavaComparação Sintaxe Portugol vs Java
Comparação Sintaxe Portugol vs Java
 
Curso de Java (Parte 1)
Curso de Java (Parte 1)Curso de Java (Parte 1)
Curso de Java (Parte 1)
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à Programação
 
Bancode dados modelagem conceitual
Bancode dados modelagem conceitualBancode dados modelagem conceitual
Bancode dados modelagem conceitual
 
Educação Tecnológica com Raspberry Pi
Educação Tecnológica com Raspberry PiEducação Tecnológica com Raspberry Pi
Educação Tecnológica com Raspberry Pi
 

Java Curso Estruturas Decisão Repetição

  • 1. Curso de Java PARTE 03 Estruturas da Linguagem Classes Wrappers Operadores Relacionais/Lógicos Estruturas de Decisão Estruturas de Repetição Coleções: List e Map por: Mário Sergio mariosergio30@gmail.com linkedin.com/in/mario-sergio-a1125831
  • 2. Classes Wrappers (java.lang) As Classe envólucro (Wrappers) : encapsulam tipos primitivos Todas essas Classes possuem o método toString() para realizar a operação inversa, entre outros métodos úteis. Métodos de conversão a partir de uma String Ex: Double numero = Double.parseDouble("13.5"); Lembre-se: F1 – para ajuda on-line
  • 3. Métodos da Classe String 3 Exemplos: texto.equals(“Accenture"); texto.equalsIgnoreCase(“accenture"); texto.trim(); texto.toUpperCase(); texto.toLowerCase(); texto.contains(“Accenture"); texto.replace(“Brasil",“Japão"); texto.substring(5, 8); texto.length(); texto.charAt(0); texto.indexOf("t"); Principais métodos da classe String https://www.devmedia.com.br/java-string-manipulando-metodos-da-classe-string/29862 Saber mais: Todos esses métodos retornam valores ! Quais são esses valores para a string abaixo ??? String texto = "Accenture do Brasil";
  • 4. // Meu Segundo Programa JAVA // Trabalhando com Números e Operadores Aritméticos // Baseado em Deitel & Deitel, 2003 // Pacote de extensão Java import javax.swing.JOptionPane; // import class JOptionPane public class Adicao { public static void main( String args[] ) { String primeiroNumero;// 1o string informado pelo usuário String segundoNumero; // 2o string informado pelo usuário int numero1; // primeiro operando da adição int numero2; // segundo operando da adição int media; // Resultado da Adição // ler o primeiro número (na forma string) primeiroNumero = JOptionPane.showInputDialog("Digite o Primeiro No Inteiro" ); // ler o segundo número (na forma string) segundoNumero = JOptionPane.showInputDialog( "Digite o Segundo No Inteiro" ); // convertendo os strings em números inteiros numero1 = Integer.parseInt(primeiroNumero); numero2 = Integer.parseInt(segundoNumero); // Somando os números media = (numero1 + numero2)/2; // Apresentando os resultados JOptionPane.showMessageDialog(null, "A media é "+media,"Resultado da media: ", JOptionPane.PLAIN_MESSAGE); } // fim do método main() } // fim da classe Adicao 4 Diálogos com javax.swing
  • 5. O Pacote swing possui uma biblioteca de Classes para interface gráfica com o usuário GUI, por enquanto utilizaremos apenas a classe JOptionPane que oferece caixas de diálogo gráficas predefinidas que permitem aos programas exibir mensagens aos usuários: - O método showMessageDialog() ebite um aviso com inteface gráfica para o usuário. - O método showConfirmDialog exibe uma pergunta ao usuário com bobões OK, NÃO E CANCELAR, e retorna um código de resposta clicada pelo usuário. - O método showInputDialog() combina a montagem da janela de edição com o prompt de digitação do string fornecido pelo usuário. - As variáveis informadas pelo showInputDialog() aos programas Java são sempre Strings e devem ser convertidas com o uso das classes wrappers do pacote java.lang. 5 Diálogos com javax.swing
  • 6. Mãos à Obra 6 Com base no exercício anterior, melhore seu “Sistema Escolar”, Utilize JOptionPane para todas as ações de interface com usuário.
  • 7. Operadores de Igualdade e Relacionais • Todos os operadores relacionais têm o mesmo nível de precedência e associam da esquerda para a direita. • São largamente utilizados nas estruturas de controle de decisão e repetição. • Resultam SEMPRE em um valor lógico, que pode ser atribuido a uma variável do tipo booleano, ex.: Operadoralgébricode igualdadepadrãoou operador relacional Operadordeigualdadeou relacionalemJava Exemplode condiçãoemJava Significadoda condiçãoemJava Operadoresdeigualdade = == x==y xéigualay <> != x!=y xnãoéigualay Operadoresrelacionais > > x>y xémaiorquey < < x<y xémenorquey = >= x>=y xémaiorqueou igualay = <= x<=y xémenorqueou igualay 7 boolean lAprovado = (media >= 6);
  • 8. Estruturas de Controle Condicional 8 Também conhecidas como estruturas decisão, seleção ou de desvio de fluxo. Seleção Simples/Composta/Encadeada Immediate IF Seleção Múltipla
  • 9. Estrutura Condicional: if Sintaxe if (condição) comando Java; [ou {bloco de comandos Java;}] O Exemplo: if (media >= 6) System.out.println(“Aprovado”); if (media >= 6) { System.out.print(“Oi Fulano !”); System.out.println(“Você foi Aprovado”); } // fim do bloco if Media >=6 Imprimir “Aprovado” verdadeiro falso 9 // Instrução de apenas 1 linha
  • 10. if (media >= 6){ System.out.print(“O Aluno está”); System.out.println(“Aprovado”); } // fim do bloco if else { System.out.print(“O Aluno está”); System.out.println(“Reprovado”); } // fim do bloco else Media >=6 Imprimir “Aprovado” verdadeiro falso Imprimir “Reprovado” 10 Estrutura Condicional: if/else
  • 11. if (media >= 9) System.out.print(“O Conceito é A”); else if (media >= 7) System.out.print(“O Conceito é B”); else if (media >= 6) System.out.print(“O Conceito é C”); else System.out.print(“O Conceito é D”); Media >=9 A verdadeiro falso Media >=7 B verdadeiro falso Media >=6 C verdadeiro D falso Estrutura Condicional: if/else (encadeada)
  • 12. Mãos à Obra 12 Com base no exercício anterior, melhore seu “Sistema Escolar”, informando o resultado final do aluno, conforme os critérios: Média: maior ou igual a 7 - Aprovado de 4 a 6.9999999.. - Recuperação (não usar operador lógico) menor que 4 - Reprovado
  • 13. Operadores de Lógicos 13 Operadores lógicos são largamente utilizados em conjunto com estruturas de controle condicionais. https://www.tutorialgateway.org/java-logical-operators/ Saber mais: considerando: int age; boolean aprovado;
  • 14. Lógica Proposicional: Tabela Verdade Ex: temos as proposições A e B A: Brasília é a capital do Brasil E B: Lima é a capital do Peru. A: Gato é um Animal E B: Peixe é um mamífero. A: Recife é um pais OU B: Olinda é uma cidade NÃO A: O Japão fica na Ásia 14 Relembrando: Tabela Verdade Para quem tem dúvidas... https://www.tutorialgateway.org/java-logical-operators/ Saber mais:
  • 15. Mãos à Obra 15 Com base no exercício anterior, melhore seu “Sistema Escolar”, adicionando os critérios: Quantidade de Faltas e trabalho noturno: Só é permitido ficar em Recuperação se a quantidade de faltas for menor que 10. Só é permitido ser aprovado com nota 7 se o aluno tiver menos que 3 faltas ou comprovar que trabalha a noite. Caso contrário, só será aprovado direto com média a partir de 9.
  • 16. Precedência de operadores Operadores de Lógicos Em proposições compostas, é importante respeitarmos a ordem de precedência natural dos operadores: 1º: operador ! 2º: conectivo && 3º: conectivo || Portanto, quando desejarmos alterar a ordem das comparações, devemos utilizar parênteses ( ) 16 Assim temos: double media = 6.0; int qtdFaltas = 5; boolean lTrabalhoNoturno = true; if (media >= 7 && qtdFaltas < 3 || lTrabalhoNoturno) resultado = "Aprovado"; if ( (media >= 7) && (qtdFaltas < 3 || lTrabalhoNoturno) ) resultado = "Aprovado"; F F F F V V F V V F || && V F * Teriamos aluno aprovado com média 6 ! • Resultado correto de acordo com o problema proposto
  • 17. Estrutura Condicional: Immediate-IF (condição) ? {valor para condição true} : {valor para condição false} Exemplos: O operador Ternário ? : retorna um valor dependendo do resultado da condição 17 resultado = (media >= 6) ? "Aprovado" : "Reprovado"; System.out.println((media >= 6) ? "Aprovado" : "Reprovado"); Sintaxe: Equivalente a: if (media >= 6) resultado = "Aprovado"; else resultado = "Reprovado";
  • 18. Também conhecido como estrutura de seleção múltipla • O valor a ser testado (condicional) aparece apenas uma vez, diferentemente do que ocorreria com multiplos if else • Utilize o comando break para finalizar a execução do switch quando um dos case´s for atendido, caso contrário, todos os blocos case abaixo serão também executados. 18 Estrutura Condicional: switch / case É OPCIONAL
  • 19. Mãos à Obra 19 Baseado no exemplo anterior, crie um novo programa: “Calculadora” Utilizando a estrutura de seleção múltipla switch (key) { case value: break; default: break; }
  • 20. 20 Estrutura Condicional: switch / case Um motivo para não usar break
  • 21. Estruturas de Controle de Repetição 21 Executa trechos de código repetidamente (loops).(lo Principais Tipos de estruturas de repetição: - Repetição condicional (indefinida) while (condition) { } Com teste lógico no início Com teste lógico no final (executa ao menos 1 vez) Iteração contada Iteração sobre elementos de uma lista considerando: do { } while (condition); - Repetição contada (definida) Número pré-determinado for (int i = 0; condintion over i; i++) { } for (String item : list) { } List<String> list;
  • 22. • Essas estruturas de repetição permitem especificar uma ação ou um bloco de ações que devem permanecer sendo repetidas enquanto determinada condição for verdadeira. • O corpo da estrutura pode ser uma instrução única ou um bloco de comandos. • Quando a condição do comando while ou do/while se tornar falsa, a ação (ou bloco) do comando será pulada. O programa continuará com a ação imediatamente após o comando while. • IMPORTANTE: você deve sempre prever a ação que tornará falsa a condição do comando while. Caso contrário seu programa entrará em loop infinito. 22 Estrutura de Repetição: while e do/while Pode nunca ser executado boolean lTemVida = true; while (lTemVida) { System.out.println("Há Esperança !"); } int nQtdvidas = 7; do { System.out.println("Há Esperança !"); } while (nQtdvidas > 0); Será executado ao menos 1 vez Nesses dois exemplos temos problema de looping infinito, pois o valor da VARIAVEL DE CONTROLE não está sendo alterado dentro do escopo da estrutura.
  • 23. Mãos à Obra 23 Com base no exercício anterior, melhore seu “Sistema Escolar”: Após a exibição do resultado da média do primeiro aluno, pergunte ao usuário se ele deseja digitar dados para um novo aluno. Obs: por enquanto não se preocupe em armazenar o histórico de todos alunos/médias
  • 24. • A estrutura de repetição for permite repetir uma ação ou um bloco de ações em um número definido de vezes. • O comando for possui três seções: 24 Estrutura de Repetição: for for (int x = 0; x < 1000; x++) { System.out.println("Repetição de numero: " + x); } Chamada de Variável de Controle Será executada EXATAMENTE 1000 vezes for (inicializadores; condição de continuação; incremento) { ação ou bloco de ações no comando; }
  • 25. Mãos à Obra 25 Com base no exercício anterior, melhore seu “Sistema Escolar”: Precisamos obter mais notas para compor a média, não apenas duas. Assim, antes de digitar as notas o usuário precisará informar quantas notas ele pretende digitar para cálculo da média do aluno. Obs: por enquanto não se preocupe em armazenar o histórico de todos alunos/médias
  • 26. Coleções: Listas (java.util.List) • Uma Lista representa uma coleção de objetos, sendo mais flexivel que os arrays pois podem variar de tamanho dinamicamente. - Permitem elementos duplicados - Permitem valores nulos - Mantém uma ordenação posicional (por índice) List<String> listaEstados = new ArrayList<String>(); listaEstados.add("São Paulo"); listaEstados.add("Rio de Janeiro"); listaEstados.add("Minas Gerais"); System.out.println("Segundo elemento da lista :" + listaEstados.get(1)); 26https://www.caelum.com.br/apostila-java-orientacao-objetos/collections-framework/ Saber mais: Exemplos:
  • 27. Métodos da classe List: add – Adiciona um item no final da coleção get – retorna (pega) um item em determinada posição set – altera o valor de um item em uma determinada posição size – retona o tamanho atual da coleção clone – Duplica a ArrayList contains – busca um valor no array, e retorna true, se o elemento estiver no array; indexOf – busca um valor no array, mas retorna o índice do elemento encontrado; lastIndexOf – o mesmo que indexOf mas retorna o último elemento encontrado; remove – Remove um item da coleção. 27Lembre-se: F1 – para ajuda on-line Coleções: Listas (java.util.List)
  • 28. A estrutura de repetição for também permite realizar iterações sobre elementos de uma lista de uma forma mais direta, sem a necessidade de uma variavel de controle (contador). 28 Estrutura de Repetição: for (com listas) Para cada iteração, o próximo item da lista é colocado na variável item, seguindo a ordem que o item ocupa na lista (índice). for (String item : list) { System.out.println(“Item da lista: " + item); } List<String> list; List<String> listFrutas = new ArrayList<String>(); listFrutas.add("Morango"); listFrutas.add("Abacaxi"); listFrutas.add("Uva"); System.out.println("<<<< Lista de Frutas >>>>>>>"); for (String umaFruta : listFrutas) System.out.println("Fruta: " + umaFruta); Exemplo:
  • 29. Mãos à Obra 29 Com base no exercício anterior, melhore seu “Sistema Escolar”, 1- Guardar o histórico dos alunos: nomes, médias, idades, e escolaridade dos alunos, em quatro objetos do tipo List. 2- Mostrar relatório com nomes, médias, idades, e escolaridade de TODOS os alunos no final da execução do programa. Obs: A escolaridade tem como dominio: FUNDAMENTAL MEDIO SUPERIOR
  • 30. • Um Map representa uma coleção de objetos, numa estrutura (key,value). Também conhecida como um PAR (chave,valor). Assim como as listas, podem variar de tamanho dinamicamente. - Não permitem elementos duplicados - Permitem apenas um valor nulo - Não mantem uma ordenação posicional - Encontra um valor a partir de sua chave 30 Exemplos: Map<String,String> mapContatos = new HashMap<>(); mapContatos.put("Tom", "(111)123-4567"); mapContatos.put("Dick", "(222)123-7890"); mapContatos.put("Harry", "(333)373-3703"); String fone = mapContatos.get("Dick"); Coleções: Mapas (java.util.Map) (222)123-7890 Valor retornado:
  • 31. 31 Iteração sobre todos os elementos de um Map: for (Map.Entry<String,String> umContato : mapContatos.entrySet()) { System.out.println("Chave: " + umContato.getKey()); System.out.println("Valor: " + umContato.getValue()); System.out.println("--------------------------------"); } Coleções: Mapas (java.util.Map) Busca por uma chave em um Map: if (mapContatos.containsKey("Harry")) System.out.println("Telefone:" + mapContatos.get("Harry")); Telefone: (333)373-3703 saída
  • 32. Mãos à Obra 32 Com base no exercício anterior, melhore seu “Sistema Escolar”, 1- Precisamos incluir permissões de acesso para usar o Sistema escolar. Desejamos que os funcionarios da escola Realizem login, utilizando usuario e senha antes de iniciar o cadastro dos alunos. Dica: Utilize um Map pré-cadastrado (hard-code) para cadastrar os acessos: Ex: Chave/valor -> Usuario/senha PROFESSOR->25413 DIRETOR->felicidade SECRETARIA->amor1000 COORDENADOR->2018
  • 33. Instruções: break e continue • As instruções break e continue modificam o comportamento das estruturas de repetição while, for, do/while ou switch. . • A instrução break interrompe o laço (no caso das estruturas de repetição) e impede a execução de outros casos de um comando switch. • A instrução continue permite o salto do conjunto de operações, com retorno à expressão condicional do laço, reiniciando o mesmo (portanto, ao contrário do break, não interrompe o laço). 33
  • 34. Instruções: break e continue 34
  • 36. Referências Programação de computadores em Java Rui Rossi dos Santos Java 8: Programação de Computadores - Guia Prático de Introdução, Orientação e Desenvolvimento - José Augusto N. G. Manzano Slides do Prof. Roberto Pacheco INE – CTC – UFSC