Java - Estruturas de Decisão, Repetição e Arrays Professor: Vilson Heck Junior [email protected] Agenda • Estruturas de Decisão: – – – – if; Clausulas em Java; switch; Exercícios; • Estruturas de Repetição: – – – – while; do ... while; for; Exercícios; • Arrays: – Unidimensionais; – Bidimensionais; – Exercícios. Java ESTRUTURAS DE DECISÃO Estruturas de Decisão – if VisuALG: Java: se (<clausula>) entao ... senao //Opcional ... fimse if(<clausula>) { ... } else //Opcional { ... } Verificação de Clausulas Operadores Relacionais Java Maior: > Menor: < Maior ou Igual: >= Menor ou Igual: <= Igual: == Diferente: != Não: (inversão) ! E: && OU: || Atenção Estruturas de Decisão – Ex: Scanner entrada = new Scanner(System.in); int x; System.out.print("Digite um valor: "); x = Integer.parseInt(entrada.nextLine()); if ( x > 0) { System.out.println("O número é positivo!"); } else { System.out.println("O número é negativo ou neutro!"); } Estruturas de Decisão – Ex: Scanner entrada = new Scanner(System.in); int x; System.out.print("Digite um valor: "); x = Integer.parseInt(entrada.nextLine()); if ( (x >= 1) && (x <= 10) ) { System.out.println("Pertence ao intervalo 1..10!"); } else { System.out.println("NÃO pertence ao intervalo 1..10!"); } Estruturas de Decisão – switch VisuALG: x: inteiro x <- 10 escolha (x) caso 1: escreva(“Um”) caso 2: escreva(“Dois”) outrocaso: escreva(“Desconhecido”) fimescolha Java: int x = Integer.parseInt(entrada.nextLine()); switch(x) { case 1: System.out.println(“Um”); break; case 2: System.out.println(“Dois”); break; default: System.out.println(“Desconhecido”); break; } Estruturas de Decisão EXERCÍCIOS Exercícios 1. Ler 3 números fracionários do teclado e informar se o primeiro é maior do que a soma dos dois últimos; 2. Calcular a multa: Leia a velocidade de um carro e a velocidade máxima para a rua: 1. Informe 50 reais se estiver até 10km/h acima; 2. Informe 100 reais se estiver entre 11km/h e 30km/h acima; 3. Informe 300 reais se estiver acima de 31km/h acima; Exercícios 3. Ler 3 valores em qualquer ordem e escrever eles em ordem crescente; 4. Escrever se um ano informado pelo usuário é bissexto ou não. Um ano é bissexto quando é (divisível por 400) ou é (divisível por 4 e não por 100); 5. Ler 2 valores fracionários e perguntar qual operação aritmética o usuário quer fazer com eles. Usar switch..case. Informar o resultado da operação. Java ESTRUTURAS DE REPETIÇÃO Estruturas de Repetição – while VisuALG: Java: enquanto (<clausula>) faca ... fimenquanto while(<clausula>) { ... } Estruturas de Repetição – do VisuALG: Java: repita ... ate (<clausula>) do { ... } while (<clausula>); Sentidos Opostos! Estruturas de Repetição – for VisuALG: x: inteiro para x de 1 ate 10 faca ... fimpara Java: int x; for( x=1; x <= 10; x++) { ... } Interrompendo Repetições • Para parar qualquer estrutura de repetição a qualquer momento, usamos o comando: break; • Ex: for(int x = 0; x <= 10; x++) { System.out.println(x); if(x == 5) { break; } } Forçando Próxima Iteração • Para pular para a próxima iteração em qualquer estrutura de repetição, a qualquer momento, usamos o comando: continue; • Ex: for(int x = 0; x <= 10; x++) { System.out.println(); System.out.print(“Número: “); if(x == 5) { continue; } System.out.print(x); } Estruturas de Repetição EXERCÍCIOS Exercícios 1. Informar todos os números de 1000 a 1999 que quando divididos por 11 obtemos resto = 5. 2. Colocar estas duas linhas iniciais no método Main(): Random rnd = new Random(); //Inicia Aleatório int x = rnd.nextInt(100); //Gera um número aleatório (0 – 99) 1. Faça um laço de repetição que solicite ao usuário digitar um número; 2. O laço encerra quando o usuário acertar o número; 3. Se o número do usuário for menor que o oculto, escrever: “MAIOR”, se o número do usuário for maior que o oculto, escrever: “MENOR”. Java ARRAYS Arrays Unidimensionais VisuALG: var nome: vetor [n1..n2] de <tipodado> inicio nome[indice] <- valor escreva(nome[indice]) fimalgoritmo Java: <tipodado>[ ] nome = new <tipodado>[tamanho]; nome[indice] = valor; System.out.println(nome[indice]); Arrays Unidimensionais • Exemplo de criação e uso de Array: int[]numeros = new int [5]; valor = numeros[2]; int valor = 0; numeros[3] = 5; numeros[0] = 3; numeros[1] = 4; numeros[2] = 10; numeros[4] = 1; numeros: 3 4 10 5 1 Índices: 0 1 2 3 4 valor 10 Arrays Bidimensionais • Definição: Arrays Bidimensionais – Matrizes! – – – – Imagens; Equações matemática, principalmente geometria; Tabelas; Entre outros exemplos. Ano/ Produto Exemplo: Relação de vendas de uma padaria: Cafezinhos Pães Biscoitos Bolos Cucas 2006 3650,00 63875,00 10950,00 36500,00 7665,00 2007 3454,00 74345,00 12043,00 46342,00 9234,00 2008 3789,00 61023,00 11324,00 29345,00 8235,00 2009 4002,00 75432,00 14034,00 40123,00 8945,00 2010 3876,00 79345,00 9231,00 39423,00 7983,00 2011 3953,00 64567,00 10234,00 37345,00 6235,00 Arrays Bidimensionais • Uso: <tipodado>[ ][ ] nome = new <tipodado>[n][m]; nome[x][y] = valor; System.out.println(nome[x][y]); • Onde: – – – – n é o número de linhas; m é o número de colunas; x é o índice de uma linha; y é o índice de uma coluna. Arrays Bidimensionais • • • • • int[][] matriz = new int[5][4]; matriz[0][0] = 4; matriz[4][3] = 5; matriz[3][1] = 2; matriz[1][2] = 7; Índices 0 0 1 2 3 4 1 7 2 3 4 2 5 Arrays EXERCÍCIOS Exercícios • Lista de números: 1. Armazenar um array de 10 números inteiros: • • Solicitar ao usuário que informe cada um destes números; ou Gerar 10 números aleatórios para o array: – Random rnd = new Random(); //Inicia Aleatório [Fora do laço] – array[indice]= rnd.nextInt(100); //Gera um número aleatório 2. Mostrar o array na sequência adquirida/gerada; 3. Colocar todo o array em ordem crescente; 4. Mostrar o array ordenado na tela.