Baixe o app para aproveitar ainda mais
Prévia do material em texto
Linguagem de Programação II CCE0234 Prof. Carlos Henrique Odenique Jardim Roteiro • Identificadores e palavras reservadas • Tipos de variáveis e declaração de variáveis • Comentários • Operadores • Conversão de tipos • Estruturas de seleção • Estruturas de repetição 2 Identificadores • Identificador – Nome de variável ou outro item que possa ser definido em um programa • Identificador em Java – Deve começar com uma letra ou com um caractere de sublinhado – Caracteres restantes devem ser apenas letras, dígitos, ou o caractere de sublinhado – Diferenciam minúscula de maiúscula – Não tem limite de comprimento 3 Identificadores • Exemplo 4 x x1 x_1 _abc ABC123z7 soma TAXA contagem dado2 grandeBonus Palavras Reservadas • Palavras-chave – Identificadores que possuem um significado particular dentro da linguagem – Não podem ser utilizados com outros propósitos • Objetivo – Caracterizar melhor a sintaxe de uma linguagem de programação – Facilitar o trabalho dos compiladores – Permitir maior clareza das construções 5 Palavras Reservadas 6 abstract continue for new switch assert (3) default goto (1) package synchronized boolean do if private this break double implements protected throw byte else import public throws case enum (4) instanceof return transient catch extends int short try char final interface static void class finally long strictfp (2) volatile const (1) float native super while (1) sem uso na linguagem (2) somente a partir da versão 1.2 (3) somente a partir da versão 1.4 (4) somente a partir da versão 5.0 Variáveis • Java tem três tipos de variáveis – Variáveis de instância • Define atributos ou estados de um objeto em particular • Cada objeto tem seu próprio valor para a variável – Variáveis de classe • Os valores são aplicados para todas as instâncias de classe • Todos os objetos da classe compartilham o mesmo valor da variável – Variáveis locais • São declaradas e usados dentro dos métodos 7 Declaração de Variáveis • Devem ser declaradas antes de ser usada • Sintaxe para declaração • Variáveis podem ser declaradas dentro de blocos 8 tipo variável_1, variável_2, ...; Declaração de Variáveis • Toda variável tem um tipo e este não pode ser alterado depois da declaração – Java é uma linguagem fortemente tipada • Exemplo int idade; double x, y; 9 Declaração de Atribuição • Modifica o valor de uma variável • Primeiro a expressão do lado direito do = é avaliada • Depois a variável do lado esquerdo do = é fixado com o valor atribuído • Sintaxe 10 variável = expressão; Declaração de Atribuição 11 • Exemplo distancia = velocidade * tempo; contagem = contagem + 2; Declaração de Atribuição 12 • Exemplo Notação abreviada Equivalente a contagem += 2; contagem = contagem + 2; total -= desconto; total = total - desconto; bonus *= 2; bonus = bonus * 2; tempo /= fatorPressa; tempo = tempo / fatorPressa; troco %= 100; troco = troco % 100; quantia *= cnt1 + cnt2 quantia = quantia * (cnt1 + cnt2) Iniciar Variável em Declarações • Sintaxe • Exemplo 13 tipo variável_1 = expressao_1, variável_2 = expressao_2, ...; int contagem = 0, limite = 10, fator = 2; double distancia = 999.99; Literais • Literal – Nome para um valor específico – Comumente chamado de constante • Não muda de valor • Exemplo 14 0 121 -1 -223 ‘A’ ‘\n’ “XPTO” “Olá mundo!” Exemplo • 3.67 x 1017 • 5.89 x 10-6 15 367000000000000000.0 3.67e17 0.00000589 5.89e-6 Exemplo • Uso de sublinhado em literais numéricos 16 long cartao = 1234_5678_9012_3456L; double valor = 999_99_9999.99; float pi = 3.14_15F; long hexadecimal = 0xCAFE_BABE; long bytes = 0b11010010_01101001_10010100_10010010; Comentários • “//” permite comentar até o final da linha • “/* */” permite comentar o que estiver dentro • Exemplo /* comentário de um bloco completo de linhas */ // comentário de uma linha inteira 17 Operadores Aritméticos • +, -, / e * para aritmética de números – Adição, subtração, divisão e multiplicação • % refere-se ao operador módulo – O resto de uma divisão inteira • Exemplo int tres = 2 + 1; int quatro = 5 - 1; int dez = 5 * 2; int dezesseis = 64 / 4; int um = 5 % 2; 18 Incremento ++ • “i = i + 1” pode ser substituído por “i++” 19 int i = 5; int x = i++; // qual o valor de x? i = 6 int i = 5; int x = ++i; // qual o valor de x? i = 6 Incremento ++ • Operador ++ – Empregado após a variável, retorna o valor e incrementa a variável (pós incremento) • x vale 5 – Empregado antes da variável, retorna o valor incrementado (pré incremento) • x vale 6 20 int i = 5; int x = i++; // qual o valor de x? i = 6 int i = 5; int x = ++i; // qual o valor de x? i = 6 Decremento -- • “i = i - 1” pode ser substituído por “i--” 21 int i = 5; int x = i--; // qual o valor de x? i = 4 int i = 5; int x = --i; // qual o valor de x? i = 4 Decremento -- • Operador -- – Empregado após a variável, retorna o valor e decrementa a variável (pós decremento) • x vale 5 – Empregado antes da variável, retorna o valor decrementado (pré decremento) • x vale 4 22 int i = 5; int x = i--; // qual o valor de x? i = 4 int i = 5; int x = --i; // qual o valor de x? i = 4 Sequência de Escape • \ – A sequência que se segue à barra invertida não tem o mesmo significado que o caractere sozinho 23 Sequência Significado \n Nova linha \t (Horizontal) Tabulação (avança o cursor até a próxima tabulação) \\ Contrabarra (permite colocar uma contrabarra em uma expressão) \’ Aspas simples (em geral utilizada para colocar aspas simples dentro de uma citação de um caractere) \” Aspas duplas (em geral utilizada para colocar aspas duplas dentro de uma citação em string) Tipos Primitivos • Atribuição do conteúdo real da variável • 8 tipos de dados primitivos básicos – Todos eles estão incorporados ao sistema e não são objetos – Para cada tipo primitivo há um correspondente em objeto • Geralmente denominados de invólucro (wrapper) int i = 6; // i recebe uma cópia do valor 6 int j = i; // j recebe uma cópia do valor de i i = i + 1; // i recebe 7, j continua 6 24 Tipos Primitivos • byte – Inteiro de 8 bits (com sinal) • short – Inteiro de 16 bits (com sinal) • int – Inteiro de 32 bits (com sinal) • long – Inteiro de 64 bits (com sinal) 25 Tipos Primitivos • float – Ponto flutuante de 32 bits (IEEE 754) • double – Ponto flutuante de 64 bits (IEEE 754) • char – Caracteres de 16 bits em Unicode UTF-16 (sem sinal) • boolean – Tipo lógico (true ou false) 26 Conversão de Tipos • Há alguns valores para os quais não se pode fazer uma atribuição direta – Exemplo • Atribuir uma variável do tipo double a uma do tipo int produzirá um erro em tempo de compilação double d = 3.1415; int i = d; // não compila int j = 3.14; // não compila double e = 5;// double pode conter um número inteiro int k = e; // não compila 27 Conversão de Tipos • É preciso ordenar a conversão onde for necessário – Um número em ponto flutuante será armazenado em um número inteiro • Obviamente vai haver arredondamento do número – Deve-se ordenar que o número seja moldado (casted) em um número inteiro – Esse processo é nomeado casting • Conversão de tipo 28 Conversão de Tipos • É uma forma de alterar o valor de um tipo para um valor de outro tipo • Sintaxe 29 (tipo) expressao Conversão de Tipos 30 double d3 = 3.14; int i = (int) d3; long x = 10000; int i = x; // não compila (perda de informação) long x = 10000; inti = (int) x; Conversão de Tipos byte short char int long float double byte Implícita (char) Implícita Implícita Implícita Implícita short (byte) (char) Implícita Implícita Implícita Implícita char (byte) (short) Implícita Implícita Implícita Implícita int (byte) (short) (char) Implícita Implícita Implícita long (byte) (short) (char) (int) Implícita Implícita float (byte) (short) (char) (int) (long) Implícita double (byte) (short) (char) (int) (long) (float) 31 Operador “E” • Representa o “E” lógico – && • Sintaxe • Exemplo 32 (Expressao_Booleana_1) && (Expressao_Booleana_2) if ((resultado > 0) && (resultado < 10)) ... Operador “Ou” • Representa o “Ou” lógico – || • Sintaxe • Exemplo 33 (Expressao_Booleana_1) || (Expressao_Booleana_2) if ((resultado < 0) || (resultado > 10)) ... Operador “Não” • Representa a “Negação” lógica – ! • Sintaxe • Exemplo 34 !(Expressao_Booleana_1) if (!valido) ... Estruturas de Controle • Comandos – if-else – switch 35 Comando if-else • if-else – Escolhe entre duas ações alternativas • Avalia uma expressão booleana – Condição booleana • Qualquer expressão que retorne true ou false – Recomenda-se utilizar sempre “{ }” • Mesmo que haja somente um comando 36 Comando if-else • Sintaxe 37 if (Expressao_Booleana) Sim_Comando else Não_Comando Comando if-else • Sintaxe 38 if (Boolean_Expression) { Sim_Comando_1 Sim_Comando_2 ... Sim_Comando_Final } else { Não_Comando_1 Não_Comando_2 ... Não_Comando_Final } Comando if-else • Permite seleção múltipla • Sintaxe 39 if (Expressão_Booleana_1) Comando_1 else if (Expressão_Booleana_2) Comando_2 . . . else if (Expressão_Booleana_n) Comando_n else Comando_Todas_Outras_Possibilidades Comando if-else 40 int idade = 15; if (idade < 18) { System.out.println("Não pode entrar"); } int idade = 15; if (idade < 18) { System.out.println("Não pode entrar"); } else { System.out.println("Pode entrar"); } Comando if-else 41 int dia = 5; boolean estaChovendo = true; if (dia > 6 && !estaChovendo) { System.out.println("Acordar cedo"); } else { System.out.println("Continuar dormindo"); } Comando switch • Instrução switch – Permite transferir o controle para um entrada rotulada em um bloco de comandos, baseado no valor de uma expressão 42 Comando switch 43 switch (Expressao_Controle) { case Constante_1: Sequencia_Comando_1 break; case Constante_2: Sequencia_Comando_2 break; . . . case Constante_n: Sequencia_Comando_n break; default: Sequencia_Comando_Default } Comando switch • Exemplo 44 int i = 5; switch (i) { case 1: System.out.println("um"); break; case 2: System.out.println("dois"); break; default: System.out.println("outro numero"); } Comando switch • Exemplo 45 public static void main(String[] args) { String mes = "Fevereiro"; int numeroMes = converterMes(mes); if (numeroMes == 0) { System.out.println("Mês inválido"); } else { System.out.println(numeroMes); } } 46 public static int converterMes(String mes) { int numeroMes = 0; if (mes == null) { return numeroMes; } switch (mes.toLowerCase()) { case "janeiro": numeroMes = 1; break; case "fevereiro": numeroMes = 2; break; case "março": numeroMes = 3; break; case "abril": numeroMes = 4; break; 47 case "maio": numeroMes = 5; break; case "junho": numeroMes = 6; break; case "julho": numeroMes = 7; break; case "agosto": numeroMes = 8; break; case "setembro": numeroMes = 9; break; case "outubro": numeroMes = 10; break; case "novembro": numeroMes = 11; break; 48 case "dezembro": numeroMes = 12; break; default: numeroMes = 0; break; } return numeroMes; } Estruturas de Repetição • while • do-while • for 49 Comando while • while – Utilizado para fazer um laço (loop) – Repetir um trecho de código algumas vezes enquanto uma determinada condição for verdadeira 50 Comando while • Sintaxe 51 while (Expressao_Booleana) Comando while (Expressao_Booleana) { Comando_1 Comando_2 . . . Comando_final } Comando while 52 // o while imprime de 6 a 9. int dia = 6; while (dia < 10) { System.out.println(dia); dia += 1; // dia = dia + 1; } // o while imprime de 0 a 10 int i = 0; while (i <= 10) { System.out.println(i); i++; // i = i + 1 } Comando for • for – Repetir um trecho de código enquanto uma condição for verdadeira – Isola um espaço para inicialização de variáveis e o modificador dessas variáveis 53 Comando for • Sintaxe 54 for (Inicializacao; Exp_Booleana; Atualizacao) Comando for (Inicializacao; Exp_Booleana; Atualizacao) { Comando_1 Comando_2 . . . Comando_final } Comando for • Exemplo • O laço poderia ser trocado por 55 for (int i = 0; i < 10; i = i + 1) { System.out.println("Olá Mundo!!!"); } int i = 0; while (i < 10) { System.out.println("Olá Mundo!!!"); i = i + 1; } Comando do-while • do-while – Executa o corpo do laço pelo menos uma vez – A expressão é avaliada após o comando ter sido executado 56 Comando do-while • Sintaxe 57 do Comando while (Expressao_Booleana); do { Comando_1 Comando_2 . . . Comando_final } while (Expressao_Booleana); Comando do-while • Exemplo 58 int i = 5; do { i--; } while (i > 0); int i = 0; do { System.out.println("Olá Mundo!!!"); } while (i++ < 10); Comandos break e continue • break – Encerra o comando loop ou switch mais próximo que está inserido • continue – Encerra a iteração atual do corpo do loop – Para o comando mais próximo que está inserido 59 while (contador <= 10) { if (numero >= 0) { erro = "ERRO: número positivo ou zero!"; break; } soma = soma + numero; contador++; } System.out.println("Soma = " + soma); 60 while (contador <= 10) { if (numero >= 0) { erro = "ERRO: número positivo ou zero!”; continue; } soma = soma + numero; contador++; } System.out.println("Soma = " + soma); 61 import java.text.DecimalFormat; import javax.swing.JOptionPane; public class Average { public static void main(String[] args) { int gradeCounter, gradeValue, total; double average; String input; total = 0; gradeCounter = 0; input = JOptionPane.showInputDialog("Entre com a nota inteira. -1 Para Sair:"); gradeValue = Integer.parseInt(input); while (gradeValue != -1) { total = total + gradeValue; gradeCounter = gradeCounter + 1; input = JOptionPane.showInputDialog("Entre com a nota inteira. -1 para Sair:"); gradeValue = Integer.parseInt(input); } DecimalFormat twoDigits = new DecimalFormat("0.00"); if (gradeCounter != 0) { average = (double) total / gradeCounter; JOptionPane.showMessageDialog(null, "Média da classe é " + twoDigits.format(average), "Média da classe", JOptionPane.INFORMATION_MESSAGE); } else { JOptionPane.showMessageDialog(null, "Não houve entrada de notas", "Média das notas", JOptionPane.INFORMATION_MESSAGE); System.exit(0); } } } 62 Material Sugerido • DEITEL, H. M.; DEITEL, P. J.; LISBOA, C. A. L. Java: como programar. 8 ed. São Paulo: Pearson Prentice Hall, 2010. 1144p. • Object type – http://en.wikipedia.org/wiki/Object_type_(object -oriented_programming) • Autoboxing – http://docs.oracle.com/javase/1.5.0/docs/guide/la nguage/autoboxing.html 63 Material Sugerido • The For-Each Loop – http://docs.oracle.com/javase/1.5.0/docs/guide/la nguage/foreach.html • Underscores in Numeric Literals – http://docs.oracle.com/javase/7/docs/technotes/ guides/language/underscores-literals.html64
Compartilhar