0% acharam este documento útil (0 voto)
43 visualizações4 páginas

Classes em Java - Entrada Dados Com A Classe Scanner

Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
43 visualizações4 páginas

Classes em Java - Entrada Dados Com A Classe Scanner

Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

[Link].

br
[versão para impressão]
Link original: [Link]

Entrada de Dados: Classe Scanner


Este artigo aborda comandos de entrada usando a Classe Scanner e comandos de saída usando o método
printf.

Quem programa em linguagens estruturadas, como C e Pascal, e está aprendendo Java, depara-se com a seguinte situação: como atribuir valores para uma variável usando
o teclado? Em C, por exemplo, tem-se a função scanf() e em Pascal, o procedimento readln().

Saiba mais sobre a plataforma Java SE

No Java, a partir do Java 1.5 ou J2SE 5, que recebeu o codinome "Tiger", está disponível a classe Scanner do pacote [Link]. Essa classe implementa as operações de
entrada de dados pelo teclado no console.

Para utilizar a classe Scanner em uma aplicação Java deve-se proceder da seguinte

maneira:

importar o pacote [Link]:


[1]
import [Link];

Instanciar e criar um objeto Scanner:


[2]
Scanner ler = new Scanner([Link]);

[3] Lendo valores através do teclado:

Lendo um valor inteiro:

int n;

[ 3.1 ]

[Link]("Informe um número para a tabuada: ");

n = [Link]();

Lendo um valor real:

float preco;

[ 3.2 ]

[Link]("Informe o preço da mercadoria = R$ ");

preco = [Link]();

Lendo um valor real:

double salario;

[ 3.3 ]

[Link]("Informe o salário do Funcionário = R$ ");

salario = [Link]();

Lendo uma String, usado na leitura de palavras simples que não usam o

caractere de espaço (ou barra de espaço):

String s;
[ 3.4 ]

[Link]("Informe uma palavra simples:\n");

s = [Link]();

Lendo uma String, usado na leitura de palavras compostas, por exemplo, Pato

Branco:

String s;
[ 3.5 ]

[Link]("Informe uma cadeia de caracteres:\n");

s = [Link]();

Na leitura consecutiva de valores numéricos e String deve-se esvaziar o buffer

do teclado antes da leitura do valor String, por exemplo:

int n;

String s;
[Link]("Informe um Número Inteiro: ");
[ 3.6 ]
n = [Link]();

[Link](); // esvazia o buffer do teclado

[Link]("Informe uma cadeia de caracteres:\n");

s = [Link]();

Lendo um caractere usando o método read() do pacote de classes [Link]:

public static void main(String args[]) throws Exception {

char c;

[ 3.7 ]

[Link]("Informe um Caractere: ");

c = (char)[Link]();

Saiba mais sobre a classe Scanner do Java

Método printf()
Outra novidade no Java 1.5 foi a incorporação da função printf() do C como um método do pacote de classes [Link].

O método printf(), utilizado para realizar uma saída de dados no fluxo de saída padrão [Link], tem a seguinte forma geral:

[Link](<em>expressão_de_controle</em>, argumento1, argumento2, ...);

A expressão_de_controle deve ser uma sequência de caracteres (portanto, delimitada por aspas duplas) que determina as informações que serão mostradas na tela. Nesta
expressão podem existir dois tipos de informações: caracteres comuns e códigos de controle (ou especificadores de formato). Os códigos de controle, mostrados
na Tabela 1, são precedidos por um % e são aplicados aos argumentos na mesma ordem em que aparecem. É importante destacar que deve existir para cada código de
controle um argumento correspondente.

Código Formato (tipo de dados)

%c Caractere simples (char)

%s Cadeia de caracteres (String)

%d Inteiro decimal com sinal (int)

%i Inteiro decimal com sinal (int)

%ld Inteiro decimal longo (long)

%f Real em ponto flutuante (float ou double)

%e Número real em notação científica com o "e" minúsculo (float ou double)

%E Número real em notação científica com o "E" maiúsculo (float ou double)

%% Imprimir o próprio caractere %

Tabela 1. Códigos de controle ou especificadores de formato

Aplicações Java
Para demonstrar a utilização dos métodos da classe Scanner do pacote [Link] em operações de entrada de dados e do método printf() na formatação da saída através
da utilização de códigos de controle foram implementadas as seguintes aplicações Java:

import [Link]; // 1. importando a classe Scanner

public class Exemplo1 {

public static void main(String[] args) {


// 2. instanciando e criando um objeto Scanner
Scanner ler = new Scanner([Link]);

int i, n;

[Link]("Informe o número para a tabuada:\n");


n = [Link](); // 3.1 entrada de dados (lendo um valor inteiro)

[Link]("\n+--Resultado--+\n");
for (i=1; i<=10; i++) {
[Link]("| %2d * %d = %2d |\n", i, n, (i*n));
}
[Link]("+-------------+\n");
}
}

Listagem 1. Tabuada de um número.

import [Link]; // 1. importando a classe Scanner

public class Exemplo2 {

public static void main(String args[]) {


// 2. instanciando e criando um objeto Scanner
Scanner ler = new Scanner([Link]);

double pc, alt, vlrIMC;

[Link]("Informe o Peso Corporal em kg: ");


pc = [Link](); // 3.3 entrada de dados (lendo um valor real)

[Link]("Informe a Altura em metros...: ");


alt = [Link](); // 3.3 entrada de dados (lendo um valor real)

[Link]("\n========================================\n");
vlrIMC = IMC(pc, alt);
[Link]("IMC = %.2f (%s)\n", vlrIMC, interpretacaoIMC(vlrIMC));
[Link]("========================================\n");
}

public static double IMC(double pc, double alt) {


return(pc / (alt * alt));
}

public static String interpretacaoIMC(double vlrIMC) {


if (vlrIMC < 20)
return("Magro");
else if ((vlrIMC >= 20) && (vlrIMC <= 24))
return("Normal");
else if ((vlrIMC >= 25) && (vlrIMC <= 29))
return("Acima do peso");
else if ((vlrIMC >= 30) && (vlrIMC <= 34))
return("Obeso");
else // acima de 34
return("Muito obeso");
}
}

Listagem 2. Calculando o Índice de Massa Corpórea (IMC).

import [Link];
import [Link]; // 1. importando a classe Scanner

public class Exemplo3 {


// através da cláusula throws indicamos que não iremos
// tratar possíveis erros na entrada de dados realizada
// através do método "read" do pacote de classes [Link]
public static void main(String[] args) throws IOException {
// 2. instanciando e criando um objeto Scanner
Scanner ler = new Scanner([Link]);

String nome;
char sexo;

[Link]("Informe um nome:\n");
nome = [Link](); // 3.5 entrada de dados (lendo uma String)

[Link]("\nInforme o sexo (M/F): ");


// 3.7 entrada de dados (lendo um caractere)
sexo = (char)[Link]();

[Link]("\nResultado:\n");
if ((sexo == 'M') || (sexo == 'm'))
[Link]("Seja bem vindo Sr. \"%s\".\n", nome);
else [Link]("Seja bem vinda Sra. \"%s\".\n", nome);
}

Listagem 3. Entrada de dados do tipo caractere.

public class Exemplo4 {

public static void main(String[] args) {


String nomeMes[] = {"Janeiro", "Fevereiro", "Março",
"Abril", "Maio", "Junho", "Julho", "Agosto",
"Setembro", "Outubro", "Novembro", "Dezembro"};

[Link]("================");
[Link]("Mês- Nome do Mês");
[Link]("================");
for (int i=0; i<12; i++) {
[Link](" %0,2d- %s\n", (i+1), nomeMes[i]);
}
[Link]("================");
}

Listagem 4. Mostrando os nomes dos meses.

Ilustrando a execução das aplicações:

Listagem 1: Listagem 2:

Listagem 3: Listagem 4:

Saiba mais sobre Comandos de Entrada e Saída

Curso relacionado: Java Aplicado

Curso relacionado: Java: Introdução a orientação a objetos

por Omero Francisco


Expert em Java e programação Web

Você também pode gostar