Baixe o app para aproveitar ainda mais
Prévia do material em texto
LINGUAGEM DE PROGRAMAÇÃO - EDO0400 Semana Aula: 2 Unidade 1 - Introdução à linguagem de programação Tema Entrada de dados via console, estruturas de decisão, estruturas de repetição e conversão de tipos Palavras-chave Entrada de dados, estruturas de decisão, estruturas de repetição e conversão de tipos. Objetivos O aluno deverá ser capaz de: - Ler, interpretar e criar programas em Java que utilizem todo o conteúdo ensinado na aula 1 (1ª. semana), além de entrada de dados via console com a classe Scanner. - Ler, interpretar e criar programas em Java que utilizem o comando switch ... case, os comandos de repetição (for, while e do...while), break, continue e conversão de tipos. Estrutura de Conteúdo - Entrada de dados via console (classe Scanner) - Uso do método printf com formatação de casas decimais - Comando de decisão : switch... case. Comando break. - Estruturas de repetição : for, while e do ... while. Uso de break e continue em loops. - Conversão de tipos <<<<<<<<<<<<<<<<<<<< Detalhando >>>>>>>>>>>>>>>>>>>>>>> Entrada de dados Ø Classe Scanner Ø É usada para realizar a entrada de dados. Ø Pertence ao pacote java.util. Ø Por não estar definido em uma biblioteca padrão, para usar a classe Scanner precisamos informar onde essa ela se encontra. Isso é feito através do comando import: import java.util.Scanner; Ø Existem vários métodos na classe Scanner para fazer a entrada de dados: Ø ler um int: nextInt() Ø ler um double: nextDouble() Ø ler um float: nextFloat() Ø ler um long: nextLong() Ø ler uma string: nextLine() Exemplo : import java.util.Scanner; public class Leitura { public static void main(String [] args) { int idade; Scanner teclado = new Scanner(System.in); System.out.println("Qual a sua idade ? "); idade = teclado.nextInt(); System.out.println("Idade = " + idade); } // fim do metodo main } // fim da classe Ø Método printf Permite trabalhar como a função printf da linguagem C, especificando o formato de impressão. Usa-se %f para ponto flutuante, %s para string. Se quisermos especificar o número de casas decimais, devemos colocar o número de casas entre o % e o f. Exemplo : Mostrar o valor da variável media, previamente definida, com duas casas decimais. Note que média é do tipo float ou double. System.out.printf("Média = %.2f ", media); //Veja que não há + como no print ou println Ø Comando switch Ø É um comando de seleção semelhante ao if-else. Entretanto, ele é mais recomendado quando temos muitos caminhos possíveis a partir de uma única condição, em testes de igualdade. Ø A expressão do switch tem que ser, obrigatoriamente, do tipo caracter ou inteiro (byte, short, int ou long). Ø Sintaxe: switch(expressão) { case opção1: ... case opção2: ... case opção3: ... default: ... } Ø Importante: 1. Quando o switch encontra uma opção igual ao valor da expressão, ele executa todos os comandos daí em diante até encontrar o comando break. 2. O case pode ter um comando vazio. 3. O default é alcançado quando nenhum case é satisfeito. Exemplo: switch(caracter) { case 'a': case 'e': case 'i': case 'o': case 'u': System.out.println("É uma vogal"); break; case 'x': System.out.println("Letra X"); default: System.out.println("Letra inválida"); } Conversão de tipos Ø Se uma expressão com valor mais significativo for atribuída a uma variável de tipo menos significativo, poderá haver perda de dados (truncagem). Nesse caso, o Java acusa um erro de compilação. Ø A perda se dá na seguinte ordem : double -> float -> long -> int -> short -> byte Exemplos: Ø Se o resultado de uma expressão for do tipo float, poderá haver perda de dados caso ela seja atribuída a uma variável do tipo int. Ø Se uma expressão resultar em um valor do tipo double, poderá haver perda caso este seja atribuído a uma variável do tipo int ou float. Ø Para forçarmos a conversão de um tipo para outro usamos o operador de casting. Existem duas sintaxes: (tipo) variável converte a variável para o tipo (tipo) (expressão) converte o resultado da expressão para o tipo Exemplos: int i = 6, j = 3, k = 4; (float) i / j converte i para 6.0 e o resultado é 2.0 (float)(i) / k converte i para 6.0 e o resultado é 1.5 (float)(i / k) converte 1 para 1.0, ou seja só faz o cast depois da divisão Estruturas de controle : comando while Ø Avalia uma expressão lógica e executa um bloco de comando enquando ela for verdadeira Ø O bloco é executado ZERO ou mais vezes. Ø Sintaxe: while (expressao_logica) comando; ou while (expressao_logica) bloco_de_comandos Estruturas de controle : comando do ..while Ø Avalia uma expressão lógica e executa um bloco de comando enquanto ela for verdadeira. Ø O bloco é executado UMA ou mais vezes. Sintaxe: do { bloco_de_comandos } while (expressao_logica); Estruturas de controle : comando for Ø Executa um bloco de comandos enquanto uma expressão booleana for verdadeira. Ø É composto de 3 partes, onde nenhuma dessas partes é obrigatória. Sintaxe: for (expr_inicializacao; expressao_logica; expr_incremento) comando; for (expr_inicializacao; expressao_logica; expr_incremento) { bloco_de_comandos } Ø A execução do for se dá da seguinte forma: 1. Executa a expressão de inicialização 2. Testa a expressão lógica. Se for FALSA termina o for 3. Executa o bloco de comandos 4. Executa a expressão de incremento 5. Volta para o passo 2 for (expr_inicializacao; expressao_logica; expr_incremento) { comando1; comando2; } Assim, o comando for: for (expr_inicializacao; expressao_logica; expr_incremento) { comando1; comando2; } é equivalente a: expr_inicializacao; while(expressao_logica) { comando1; comando2; expr_incremento; } Comandos de interrupção em loops : break e continue 1) Comando break em loop O comando break força a saída do loop mais interno de um comando de repetição (while, do..while ou for) Exemplo: int n; while(...) { ... for (...) { ... if (n == 0) break; //sai do for quando a condição do if for verdadeira n++; } System.out.println(n); } O comando continue força o início da próxima interação do loop mais interno de um comando de repetição (while, do..while ou for) . Exemplo: int n; while(...) { ... for (...) { n = ...; if (n == 0) continue; ... } if (n < 0) continue; ... } ... Comentários : Com relação ao último exemplo com continue ... Para o comando for executa a expressão de incremento e depois testa a expressão lógica. No while e do..while reinicia a iteração testando a operação lógica. Estratégias de Aprendizagem Para que o aprendizado seja proveitoso, o aluno deve se envolver ativamente na participação da aula, deve realizar as tarefas propostas, realizar testes por conta própria nos programas desenvolvidos e compartilhar sua experiência/conclusão com todos. Toda tarefa realizada pode ser conferida com o professor, para que haja certeza se está ou não correta. Indicação de Leitura Específica Aplicação: articulação teoria e prática Em cada caso, faça um programa em Java para : 1) Ler dois valores inteiros e imprimir o resultado da soma, subtração, multiplicação, quociente e resto da divisão.2) Ler dois valores reais e imprimir o resultado da soma, subtração, multiplicação e divisão. 3) Ler o raio de um círculo. Em seguida, imprima o comprimento (2pR) e a área (pR2) do círculo que possui esse raio. 4) Qual o resultado das expressões abaixo? 5 * 4 / 6 + 7 5 * 4 / (6 + 7) 5 * 4.0 / 6 + 7 5 * 4 % 6 + 7 5 * 4 / (float)6 + 7 (4 / 3) + (3.0 * 5) (4 / 3.0) + (3 * 5) (int)(4 / 3.0) + (3 * 5) 5) Ler um número inteiro e verificar se é ou não múltiplo de 5, imprimindo mensagem para cada caso. 6) Ler um caracter op representando uma operação aritmética (+, -, *, /) e em seguida dois números reais a e b. Imprimir a expressão matemática junto com o seu resultado no formato: a op b = resultado 7) Ler um número de alunos n. Em seguida, ler as notas dos n alunos e imprimir, ao final, a média da turma. Faça uma solução com for e outra solução com while. 8) Ler notas de alunos até que o usuário digite -1. Ao final imprimir a quantidade de alunos, a média da turma, a maior nota e a menor nota. Considerações Adicionais
Compartilhar