Cursos / Jogos Digitais / Programação Estruturada / Aula

arrow_back Aula 03 - Entrada e saída (E/S) via console

3. Leitura do teclado

Você já sabe bem como imprimir valores no console do usuário. Vejamos agora como você pode fazer para ler dados do teclado via console. Para essa tarefa, você usará funções de uma classe chamada de Scanner. Veja um exemplo de seu uso através do código abaixo:

Para lermos do teclado, precisamos primeiro criar um leitor. Isso é feito na linha 05. Declaramos uma variável do tipo Scanner, que é uma classe definida na biblioteca de Java de nome java.util. Para fazer o uso de classes definidas em bibliotecas que não as padrão (java.lang), precisamos importá-las. Isso é feito através do comando mostrado na linha 01, usando-se a palavra chave import seguida do nome da biblioteca e da classe que estamos interessados em usar. Em Java, chamamos essas bibliotecas de pacotes.

Bom, depois de declarar um leitor do tipo Scanner, nós inicializamos seu valor através da instrução new Scanner. Essa instrução new realiza toda a preparação necessária para que as rotinas e variáveis declaradas na classe Scanner possam funcionar. Além disso, é passado como parâmetro para o Scanner o valor System.in, que representa o sistema de entrada de dados padrão, ou seja, o teclado.

Uma vez inicializado um leitor (Scanner) do teclado, podemos ler dados através de uma de suas várias funções. No programa mostrado como exemplo, na linha 7, usamos a função nextLine() para ler uma String do usuário. Observe que a função é provida pelo Scanner, por isso é necessário colocar o nome da variável antes do nome da função, separando-as por um ponto.

Observe, a seguir, a lista das principais funções de leitura de dados da classe Scanner.


nextLine() Lê um texto digitado pelo usuário
nextInt() Lê um número inteiro
nextLong() Lê um número inteiro longo
nextFloat() Lê um número float
nextDouble() Lê um número double
Quadro 2 - Comandos para leitura de dados do teclado via classe Scanner.

Veja o uso dessas funções no programa do leitor modificado conforme mostrado a seguir:

Note o uso de nextInt() para ler números inteiros e de nextDouble() para ler números que possuem casas decimais.

Um problema que você pode enfrentar ao usar o Scanner é pedir para o usuário digitar um número inteiro e ele digitar um tipo diferente como uma letra, por exemplo. Isso irá gerar um erro na execução do programa, chamado de InputMismatchException. O tratamento desses casos, porém, será assunto de aula da disciplina de Orientação a Objetos. Por enquanto, vamos considerar que o usuário dos nossos programas digita exatamente o tipo de informação que estamos pedindo.

Versão 5.3 - Todos os Direitos reservados