Baixe o app para aproveitar ainda mais
Prévia do material em texto
Variáveis e expressões – Parte 1 Prof. Bruno Nogueira Começamos com um exemplo... Variáveis e expressões 2 Entrada de dados Variáveis e expressões 3 } Em Java, usamos a classe Scanner, fornecida pela linguagem, para entrada de dados pelo usuário pelo teclado } Para isso, precisamos importar a definição de Scanner, a partir do pacote java.util, usando o comando import java.util.Scanner } Esse comando, assim como todas as importações necessárias, deve aparecer no começo do programa } Para passar a receber os dados do teclado, precisamos do comando Scanner teclado = new Scanner (System.in) Ou outro nome que você desejar. Mas repare que este é intuitivo! Saída de dados Variáveis e expressões 4 } Conforme já vimos, para imprimir algo na saída, usamos o comando System.out.println(); } System é uma classe que faz parte do Java } out é um objeto especial dentro dessa classe } println é um método do objeto out } Exemplo de uso: System.out.println(ovosPorCesta + “ ovos por cesta.”); Conteúdo a ser impresso Imprime o valor da variável Concatena, une Frases entre aspas - Strings Saída de dados Variáveis e expressões 5 } Outros exemplos System.out.println(“Esta frase ” + “se une a esta.”); Saída: Esta frase se une a esta. int valorCompra = 42; System.out.println(“Você gastou ” + valorCompra + “reais.”); Saída: Você gastou 42 reais. System.out.println(“Você gastou”); System.out.println(valorCompra); System.out.println(“reais.”) Saída: Você gastou 42 reais. Variáveis e expressões 6 Variáveis Variáveis e expressões 7 } Variáveis são usadas para armazenar dados, tais como números e letras } O número, letra ou outro tipo de item de dado armazenado em uma variável é chamado de valor } Valores de variáveis, de maneira geral, podem mudar ao longo da execução de um programa Variáveis Variáveis e expressões 8 Declaração das variáveis Comandos de atribuição Variáveis Variáveis e expressões 9 } Comandos de atribuição são utilizados para atribuir valores às variáveis } Variáveis representam posições de memória } Valores são codificados como 1’s e 0’s } Valores codificados como cadeias binárias são armazenados nas posições de memória da variável } Nomes de variáveis devem ser representativos } NUNCA usar variáveis de letra única } Nome de variável ajuda na legibilidade e interpretação do código } Por exemplo, o que está sendo somado? x = y + z; } E agora? saldo = saldoAnterior + salario; Declaração e tipo de variáveis Variáveis e expressões 10 } Dizemos que Java é uma linguagem tipada } Ou seja, variáveis têm tipos } Tipos limitam valores que podem ser armazenados em uma variável, bem como as ações que podem ser feitas sobre ela } Tipos são definidos na declaração de uma variável } Toda variável deve ser declarada antes de ser usada } Na declaração, dizemos ao compilador que o programa trabalhará com uma determinada variável de um tipo específico de dados } A partir disso, podemos utilizar e manipular esses dados Declaração de variáveis Variáveis e expressões 11 } A sintaxe de declaração de variáveis em Java segue a seguinte forma: Tipo Variavel_1, Variavel_2, ... ; } Exemplos int numeroDeCheques, numeroDeDepositos; double quantia, taxaDeJuros; char answer; Declaração do tipo Nomes das variáveis daquele tipo, separadas por vírgula Finaliza declaração Identificadores Java Variáveis e expressões 12 } O nome técnico para um nome em linguagem de programação é identificador } Em Java, um identificador (nome de variável ou classe) pode conter somente letras, dígitos de 0 a 9 e o caractere underscore (_) } O primeiro caractere não pode ser um dígito } Não pode conter espaços, pontos, *, } objeto1, objeto_2, objetoNumero1 são identificadores válidos } objeto 1, 1objeto, objeto.1 são identificadores inválidos } Não tem limite de tamanho } É sensível a maiúsculas e minúsculas } primeiroobjeto, PrimeiroObjeto e primeiroObjeto são identificadores distintos Identificadores Java Variáveis e expressões 13 } Java possui algumas palavras chave ou palavras reservadas pela linguagem } Têm um sentido especial predefinido } Não podem ser usadas em identificadores } Todas são totalmente em letras minúscuas } Exemplos } public, class, static, void, protected, private, ... } Relembrando: nomes de classes devem começar com letras maiúsculas e nomes de métodos e variáveis com letras minúsculas Tipos de dados Variáveis e expressões 14 } Java tem dois conjuntos de tipos de dados: tipos de classe e tipos primitivos } Tipos de classe é o tipo de dados de objetos de uma classe } Classe especifica valores que são armazenados e operações possíveis sobre eles } O tipo da classe tem o mesmo nome da classe } Por exemplo, cadeias de caracteres (como “Programar é legal!”) entre aspas são valores do tipo classe String } Tipos primitivos são mais simples que objetos } Armazena apenas valores, não métodos (operações) } São valores que não se pode decompor, como letras e números Tipos primitivos em Java Variáveis e expressões 15 Tipos primitivos em Java Variáveis e expressões 16 } Quanto maior o espaço de memória usado por um tipo, maior a quantidade de valores que ele pode armazenar } Tipos byte, short, int e long conseguem representar valores inteiros } Variam quanto ao intervalo de valores } Em geral, int é o mais utilizado } Tipos float e double armazenam números com partes fracionárias } Chamados de números de ponto flutuante } Mesmo que a parte fracionária seja zero ¨ 5 é um número inteiro ¨ 5.0 é um número de ponto flutuante } Geralmente, double é o mais utilizado Tipos primitivos em Java Variáveis e expressões 17 } O tipo char é usado para caracteres simples, como letras, dígitos e pontuação } Caracteres devem ser escritos utilizando aspas simples ‘ ’ char simbolo; simbolo = ‘A’; System.out.println(simbolo); } Cadeias de caracteres não possuem tipo primitivo em Java } São representadas por objetos da classe String } Utilizam aspas duplas “ ” String cadeia; cadeia = “Palavra”; System.out.println(cadeia); Tipos primitivos em Java Variáveis e expressões 18 } O tipo boolean é usado para armazenar valores lógicos } Pode armazenar dois valores, verdadeiro ou falso } Usado para armazenar respostas a questões lógicas ¨ “O número é maior que 5?” ¨ “A palavra digitada pelo usuário foi Sim?” boolean resposta, resposta2; resposta = true; resposta2 = false; } Todos os tipos primitivos começam com letras minúsculas } byte, short, int, long, float, double, char, boolean } Java faz distinção entre maiúsculas e minúsculas Comandos de atribuição Variáveis e expressões 19 } Para atribuir valores a uma variável ou modificar seu valor, basta usar um comando de atribuição } Usamos o sinal de igualdade =, chamado de operador de atribuição } Ordena o computador a mudar o valor da variável ao lado esquerdo da atribuição para o valor da expressão ao lado direito da atribuição } Variavel = Expressão; } A expressão pode ser outra variável, um número ou uma expressão mais complicada, construída com operadores aritméticos } + (soma), - (subtração), * (multiplicação), / (divisão) Comandos de atribuição Variáveis e expressões 20 } Exemplos } quantidade = 3.99; } primeiraInicial = ‘B’; } score = numeroDeCartas + pontuacao; } ovosPorCesta = ovosPorCesta – 2; } Atribuição também pode ser feita na declaração de um objeto } int valor = 2; } double preco = 3.3, taxa = 12.4; } float precisao = 0.8, precisaoTotal = precisao; Compatibilidade de atribuição Variáveis e expressões 21 } Não se pode colocar valores em uma variável que ela não suporte, ou que não possa ser convertido para ela } Por exemplo,não se pode colocar o valor 3.5 em uma variável do tipo int } Nem mesmo um valor 3.0 é aceito por int! } 3.0 e 3.5 são variáveis de ponto flutuante, ocupam mais espaço em memória que um int! } Em alguns casos, valores podem ser convertidos } Quando lidando com número, conversão é implícita na maioria das vezes (feito automaticamente pelo compilador } Exemplos de conversões automáticas double variavelDouble = 7; int variavelInt = 8; variavelDouble = variavelInt; } De maneira geral, podemos atribuir o valor de uma variável para outro tipo de maior precisão Compatibilidade de atribuição Variáveis e expressões 22 byte short int long float double Exercício Variáveis e expressões 23 Encontre os erros e aponte as soluções para as seguintes atribuições em Java: Conversão de tipo (type casting) Variáveis e expressões 24 } Em Java, podemos explicitamente modificar o tipo de uma variável para outro } Útil em casos em que a transformação implícita não é válida } Por exemplo, mudar o tipo de um valor 2.0 de double para int envolve o type casting } Exemplo de atribuição ilegal: double distancia = 9.0; int pontos = distancia; } Para que funcione, precisamos fazer a conversão explícita int pontos = (int) distancia; Conversão de tipo (type casting) Variáveis e expressões 25 int pontos = (int) distancia; } O valor armazenado em pontos é uma “versão int” do valor armazenado em distancia } Se o valor armazenado em distancia é 25.96, o valor de (int) distancia é 25 } Se o valor armazenado em distancia é 9.0, o valor de (int) distancia é 9 } Na conversão de tipo, cria-se um novo valor para ser armazenado na variável à esquerda } Isso é, o valor da variável original não é modificado } Nestes exemplos, o valor da variável distancia não é modificado Conversão de tipo (type casting) Variáveis e expressões 26 } Exemplo double valor = 25.36; int valorMaisTaxas = (int)valor + 5; System.out.println(“O valor mais taxas é de “ + valorMaisTaxas); } O que será impresso? O valor mais taxas é de 30 Conversão de tipo (type casting) Variáveis e expressões 27 } Exemplo double valor = 25.96; int valorMaisTaxas = (int)valor + 5; System.out.println(“O valor mais taxas é de “ + valorMaisTaxas); } O que será impresso? O valor mais taxas é de 30 Conversão de tipo (type casting) Variáveis e expressões 28 } Quando fazemos uma conversão de tipos de maior precisão para menor precisão, os valores são truncados } Não é feito arredondamento } Quando transformamos um double em um int, a truncagem despreza a parte decimal após o ponto decimal Operadores aritméticos Variáveis e expressões 29 } Uma expressão aritmética combina operandos, operadores e parênteses } Operandos: variáveis ou números } Operadores: +, -, *, / e % } Podem ser usados com qualquer tipos de operandos, inclusive com com operandos de diferentes tipos } O valor gerado, entretanto, pode variar de acordo com o tipo dos operandos } Por exemplo, a expressão numero1 + numero2 ¨ Se tanto numero1 quanto numero2 forem do tipo int, o resultado também é do tipo int ¨ Entretanto, se numero1 ou numero2 forem do tipo double (ou outro tipo de ponto flutuante), o resultado será deste segundo tipo byte short int long float double Operadores aritméticos Variáveis e expressões 30 } Expressões maiores, com mais de dois operandos, podem ser vistas como uma série de passos menores } Cada passo envolvendo dois operandos } Por exemplo, a expressão numero1 + (numero2 * numero3) } Primeiro, é avaliado numero2 * numero3 } Ao resultado da primeira operação, é somado o valor de numero1 Operadores aritméticos Variáveis e expressões 31 } Operador de divisão requer atenção especial } Na divisão, tipo dos operandos pode modificar drasticamente o resultado } Quando um dos operadores é do tipo ponto flutuante, o resultado é um ponto flutuante e o resultado é, geralmente, o que se espera de uma divisão } Caso contrário, o resultado é diferente do esperado } Exemplos } 9.0 / 2 resulta em 4.5 } 9 / 2 resulta em 4 } O resultado da divisão de dois inteiros é truncado e a parte decimal é descartada Operadores aritméticos Variáveis e expressões 32 } % é operação de módulo (mod) } Pega o resto de uma divisão } Exemplos: } 14 / 4 = 3 } 14 % 4 = 2 } Tem mais aplicações do que pode parecer } Por exemplo, para saber se um número é par ou ímpar, basta testar se numero % 2 é igual a 0 } Operadores + e – também podem ser usados em operações unárias } Um único operando } Exemplo: numeroPositivo = -numeroNegativo; Parênteses e regras de precedência Variáveis e expressões 33 } Parênteses podem ser utilizados para agrupar itens em operações aritméticas } Indicam quais operações devem ser feitas antes (custo + taxa) * desconto custo + (taxa * desconto) } Se omitir os parênteses, em qual ordem serão avaliadas as expressões? Parênteses e regras de precedência Variáveis e expressões 34 MAIOR PRECEDÊNCIA } Primeiro: operadores unários: +, -, !, ++ e -- } Segundo: operadores binários *, / e % } Terceiro: operadores binários + e – MENOR PRECEDÊNCIA Parênteses e regras de precedência Variáveis e expressões 35 Operadores de atribuição especial Variáveis e expressões 36 } Operador de atribuição (=) pode ser utilizado com um operador aritmético, como +, -, * ou / } Por exemplo, se quisermos incrementar uma variável quantidade com 5, basta fazer quantidade += 5; que é igual a fazer quantidade = quantidade + 5; } De forma similar, se quisermos decrementar, dividir ou multiplicar quantidade -=5; quantidade /=5; quantidade *=5; Operadores de incremento e decremento Variáveis e expressões 37 } Para adicionarmos ou subtrairmos 1 unidade do valor de uma variável, podemos utilizar operadores de incremento (++) ou decremento (--) contador++; equivale a contador = contador + 1; } De maneira similar contador--; equivale a contador = contador – 1; Operadores de incremento e decremento Variáveis e expressões 38 } Para testar: qual o valor das seguintes expressões int n = 3; int m = 4; int result = n * (++m); e int n = 3; int m = 4; int result = n * (m++); Exercício Variáveis e expressões 39 } Escreva um programa Java que calcule o número de artigos aceitos em uma conferência, de acordo com o algoritmo abaixo ALGORITMO NumeroArtigosAceitos DECLARE taxaAceitacao, numeroSubmetidos, totalAceitos NUMÉRICO ESCREVA "Digite o número de artigos submetidos" LEIA numeroSubmetidos ESCREVA "Digite a taxa de aceitação desta conferência" LEIA taxaAceitacao totalAceitos <- taxaAceitação * numeroSubmetidos ESCREVA "O número de artigos aceitos é de " FIM ALGORITMO NumeroArtigosAceitos Exercício II Variáveis e expressões 40 } Escreva um programa Java para o cálculo de sua média no semestre } MP = (2*P1 + 2*P2 + 3*P3) / 7 } MF = 0,6 * MP + 0,2 * TP + 0,2 * AI Exercício III Variáveis e expressões 41 } Escreva um programa Java que mostre, separadamente, o quociente e o resto da divisão de dois números fornecidos pelo usuário
Compartilhar