Atualizado: 25/05/2025

Este conteúdo é original e não foi gerado por inteligência artificial.

Entrada e Saída de Dados no Console em Java

A forma mais simples de interagir com o usuário em Java é por meio do console, permitindo exibir informações na tela ou receber dados digitados. Para isso, a linguagem disponibiliza a classe System, que contém funcionalidades específicas para entrada e saída no console.

Saída no Console

O objeto out da classe System representa um fluxo de saída, e seu método println exibe valores no console, movendo automaticamente o cursor para a próxima linha:

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello world!");
        System.out.println("Bye world...");
    }
}

Saída:

Hello world!
Bye world...

Se não for necessário mover o cursor para a próxima linha, o método System.out.print() pode ser utilizado. Ele mantém o cursor na mesma linha:

public class Main {
    public static void main(String[] args) {
        System.out.print("Hello world!");
        System.out.print("Bye world...");
    }
}

Saída:

Hello world!Bye world...

Para inserir uma quebra de linha manualmente, a sequência de escape \n pode ser usada:

System.out.print("Hello world \n");

Quando é necessário exibir variáveis dentro de uma string, a concatenação pode ser usada:

public class Main {
    public static void main(String[] args) {
        int x = 5;
        int y = 6;
        System.out.println("x=" + x + "; y=" + y);
    }
}

Saída:

x=5; y=6

O método System.out.printf() permite formatar a saída:

int x = 5;
int y = 6;
System.out.printf("x=%d; y=%d \n", x, y);

Os caracteres %d são substituídos pelos valores das variáveis x e y, respectivamente.

Os especificadores de formato incluem:

  • %d: exibe números inteiros
  • %x: exibe números inteiros em hexadecimal
  • %f: exibe números de ponto flutuante
  • %e: exibe números em notação científica (exemplo: 1.3e+01)
  • %c: exibe um caractere
  • %s: exibe uma string

Exemplo de formatação com diferentes tipos de dados:

public class Main {
    public static void main(String[] args) {
        String name = "Tom";
        int age = 30;
        float height = 1.7f;

        System.out.printf("Name: %s  Age: %d  Height: %.2f \n", name, age, height);
    }
}

No caso de números de ponto flutuante, a precisão pode ser ajustada. O especificador %.2f define que apenas duas casas decimais devem ser exibidas. Saída:

Name: Tom  Age: 30  Height: 1.70

Entrada no Console

A entrada de dados no console é representada pelo objeto in da classe System, mas trabalhar diretamente com System.in pode ser pouco prático. O mais comum é utilizar a classe Scanner, que facilita a leitura de diferentes tipos de dados:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.print("Input a number: ");
        int num = in.nextInt();

        System.out.printf("Your number: %d \n", num);
        in.close();
    }
}

Como a classe Scanner pertence ao pacote java.util, é necessário importá-la antes de ser utilizada:

import java.util.Scanner;

O objeto Scanner é criado passando System.in para o seu construtor. O método nextInt() captura o valor digitado e o armazena na variável num. Exemplo de execução:

Input a number: 10
Your number: 10

A classe Scanner oferece diversos métodos para capturar diferentes tipos de entrada:

  • next(): lê uma palavra até o primeiro espaço em branco
  • nextLine(): lê uma linha completa
  • nextInt(): lê um número inteiro (int)
  • nextDouble(): lê um número de ponto flutuante (double)
  • nextBoolean(): lê um valor booleano (true ou false)
  • nextByte(): lê um número no formato byte
  • nextFloat(): lê um número no formato float
  • nextShort(): lê um número no formato short

Cada tipo de dado primitivo tem um método correspondente na classe Scanner. No exemplo abaixo, os dados de um usuário são capturados e exibidos no console:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        System.out.print("Input name: ");
        String name = in.nextLine();
        System.out.print("Input age: ");
        int age = in.nextInt();
        System.out.print("Input height: ");
        float height = in.nextFloat();

        System.out.printf("Name: %s  Age: %d  Height: %.2f \n", name, age, height);
        in.close();
    }
}

Exemplo de execução:

Input name: Tom
Input age: 30
Input height: 1.7
Name: Tom  Age: 30  Height: 1.70

Resumo

  • System.out.println(): imprime no console e move o cursor para a próxima linha.
  • System.out.print(): imprime sem mover o cursor para a próxima linha.
  • \n: quebra de linha dentro de System.out.print().
  • Scanner: facilita a entrada de dados a partir do console.
  • Métodos do Scanner:

    • nextLine(): lê uma linha completa.
    • next(): lê uma palavra até o primeiro espaço em branco.
    • nextInt(), nextDouble(), nextFloat(), etc.: capturam diferentes tipos de valores numéricos.

📝 Exercícios

Tarefa 1: Saída no Console

Leia o código abaixo e tente prever a saída antes de executá-lo.

System.out.print("Java ");
System.out.println("é incrível!");
System.out.print("Aprendendo ");
System.out.print("formatar ");
System.out.println("saída no console.");
System.out.println("Fim da execução.");

Pergunta: O que será impresso no console?

Resposta
Java é incrível!
Aprendendo formatar saída no console.
Fim da execução.

Tarefa 2: Formatação de Números

Temos as seguintes variáveis:

double value1 = 123.45333;
double value2 = 0.004321;

Como exibir o seguinte resultado no console?

Valor um: 123.45
Valor dois: 0.00
Resposta
double value1 = 123.45333;
double value2 = 0.004321;

System.out.printf("Valor um: %.2f \n", value1);
System.out.printf("Valor dois: %.2f \n", value2);

Tarefa 3: Especificadores de formato

Temos as seguintes variáveis:

int number = 255;
double decimal = 3.14159;
char letter = 'A';
String text = "Java";

Como exibir essas variáveis no console com os seguintes formatos usando os especificadores de formato?

Número inteiro: 255
Número decimal: 3.14
Caractere: A
Texto: Java
Resposta
System.out.printf("Número inteiro: %d\n", number);
System.out.printf("Número decimal: %.2f\n", decimal);
System.out.printf("Caractere: %c\n", letter);
System.out.printf("Texto: %s\n", text);

Explicação dos especificadores usados:

  • %d: exibe números inteiros
  • %.2f: exibe números de ponto flutuante
  • %c: exibe um caractere
  • %s: exibe uma string
  • Política de Privacidade

    Copyright © www.programicio.com Todos os direitos reservados

    É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

    Contato: programicio@gmail.com