Java: variáveis, entrada e saída
Escreva programas Java de sequência simples (entrada, processamento e saída) usando variáveis de tipos primitivos, operadores aritméticos e as caixas de diálogo da classe JOptionPane.
1. Visão geral
Neste material estudaremos os algoritmos de sequência simples, ou seja, aqueles que envolvem um conjunto de entradas, processamento e um conjunto de saídas. Faremos a implementação desses algoritmos utilizando a linguagem Java. Para tanto, veremos também declaração de variáveis e métodos de entrada e saída.
O que você vai aprender
- Como compilar e executar um programa Java com
javacejava - Boas práticas de escrita de código Java (indentação, nomes, CamelCase)
- A estrutura entrada – processamento – saída
- Variáveis e os tipos primitivos
int,doubleeboolean - Entrada e saída de dados com
JOptionPane.showInputDialogeJOptionPane.showMessageDialog - Os operadores aritméticos da linguagem Java
O que você vai precisar
- JDK instalado
- Um IDE ou editor de código (por exemplo, o VS Code)
2. Meu primeiro programa em Java
Nosso primeiro programa em Java será aquele exibido no Bloco de Código 2.1.1.
HelloWorld.java · Bloco de Código 2.1.1
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}
O código de um programa de computador escrito na linguagem Java é compilado para uma forma intermediária de código denominada bytecode, que é interpretada pelas Máquinas Virtuais Java. Para isso, utilizamos o comando javac ou acionamos o item do IDE que o invoca. A sintaxe do comando é
Terminal
javac arquivo.java
Pronto, agora o nosso bytecode está pronto para ser interpretado pela JVM. Eles estão armazenados em um arquivo de extensão .class que foi gerado pelo compilador. Para colocar o programa em execução, use
Terminal
java arquivo
Mais precisamente, esse comando coloca uma instância da máquina virtual Java em execução e ela se encarrega de interpretar os bytecodes, explicando para o computador o que ele deve fazer a cada instrução. Repare que não colocamos extensões quando ela é colocada em execução.
O arquivo HelloWorld.java
O exemplo mostra que a classe HelloWorld tem um método main que é quase sempre escrito da forma apresentada. Ele também admite algumas variações que veremos conforme aprofundamos os estudos. O método println exibe uma mensagem em tela de comando. Vamos praticar algumas variações, utilizando a classe JOptionPane, por exemplo.
Observações importantes e boas práticas de programação
- Blocos são delimitados por
{}, a menos que tenham uma única instrução. Neste caso, o uso de{}é opcional. - Uma boa prática de programação é indentar sempre programas.
- Classes têm nomes iniciados por letra em caixa alta.
- Variáveis e métodos têm nome iniciados por letras em caixa baixa.
- Métodos sempre têm parênteses para parâmetros, mesmo que fiquem vazios.
- Para quaisquer nomes, respeitamos o padrão conhecido como CamelCase.
3. Algoritmos básicos
Um algoritmo básico ou de sequência simples tem a seguinte estrutura:
entrada – processamento – saída
A Figura 2.4.1 ilustra um fluxograma para essa estrutura.

Figura 2.4.1 – Fluxograma de um algoritmo de sequência simples.
Um exemplo simples
Somar 2 números escolhidos pelo usuário e exibir o resultado.
Entrada: informações que são fornecidas ao programa para que ele seja executado. Nesse primeiro exemplo, são os 2 números escolhidos pelo usuário. Nesta fase, o programa irá:
- ler os valores digitados pelo usuário
- armazenar os valores em variáveis denominadas
primeiroValoresegundoValor
Processamento: aquilo que o programa faz com a entrada para obter a saída desejada. Nesta fase, o programa irá:
- calcular a soma entre
primeiroValoresegundoValor - armazenar o resultado calculado em uma variável chamada
resultado
Saída: entrega do resultado obtido. Neste exemplo, o programa irá:
- exibir o valor resultante na saída padrão
4. Variáveis e tipos primitivos
Variável
Uma área reservada na memória RAM, identificada por um nome, que pode armazenar valores de um determinado tipo.
Um tipo de dado define um conjunto de valores e um conjunto de operações válido. Pelo fato de especificarmos os tipos de nossas variáveis ainda em tempo de compilação, ou seja, entregarmos essa informação ao compilador, dizemos que a linguagem Java é estaticamente tipada.
No Java temos vários tipos chamados primitivos. Veja alguns bastante comuns:
- int: é o tipo de dado capaz de armazenar 32 bits, ou seja, de representar um número inteiro qualquer entre -2.147.483.648 e 2.147.483.647.
- double: permite armazenar valores de ponto flutuante IEEE 754 de 64 bits e dupla precisão. Essa é a opção padrão para valores decimais.
- boolean: armazena um único byte de informação, que pode ser representado pelas palavras
false(falso) outrue(verdadeiro).
O Bloco de Código 2.6.1 mostra o esqueleto da classe SomaDoisNumeros, com a definição do bloco do método main e a declaração das 3 variáveis, do tipo double. Perceba a indentação do código.
SomaDoisNumeros.java · Bloco de Código 2.6.1
public class SomaDoisNumeros {
public static void main(String[] args) {
double primeiroValor;
double segundoValor;
double resultado;
}
}
5. Entrada de dados
O Java provê várias classes que podem realizar a entrada de dados. Vamos iniciar pela classe JOptionPane, que fornece, entre outros, métodos para entrada e saída. Essa classe está no pacote javax.swing, portanto, devemos importá-la para podermos usar. O método para entrada de dados é o showInputDialog.
O Bloco de Código 2.7.1 mostra agora a classe SomaDoisNumeros, com a linha de importação da classe JOptionPane e a leitura (entrada) dos valores que o usuário digita e são armazenados nas variáveis primeiroValor e segundoValor.
SomaDoisNumeros.java · Bloco de Código 2.7.1
import javax.swing.JOptionPane;
public class SomaDoisNumeros {
public static void main(String[] args) {
double primeiroValor;
double segundoValor;
double resultado;
primeiroValor = Double.parseDouble(JOptionPane.showInputDialog("Digite o primeiro valor"));
segundoValor = Double.parseDouble(JOptionPane.showInputDialog("Digite o segundo valor"));
}
}
O método showInputDialog tem como parâmetro a mensagem que aparece para o usuário (sempre entre aspas). Note também que temos outro método: o parseDouble definido pela classe Double. Isso é necessário porque o método showInputDialog sempre devolve uma String, isto é, uma sequência de caracteres, portanto temos que transformá-la em valor numérico, neste caso em double.
6. Processamento
Estamos quase lá, a entrada está resolvida, vamos para o processamento. O programa tem por objetivo somar dois números. Utilizamos para isso o operador +. A Tabela 2.8.1 mostra os operadores aritméticos da linguagem Java.
Tabela 2.8.1
| Operação | Operador | Exemplo | Resultado |
|---|---|---|---|
| Soma | + |
2 + 3 |
5 |
| Subtração | - |
5 - 2 |
3 |
| Multiplicação | * |
6 * 5 |
30 |
| Divisão inteira | / |
5 / 2 |
2 |
| Divisão real | / |
5.0 / 2 ou 5 / 2.0 ou 5d / 2 ou 5 / 2d |
2.5 |
| Módulo (resto de divisão inteira) | % |
5 % 2 |
1 |
O Bloco de Código 2.8.1 mostra a implementação da fase de processamento.
SomaDoisNumeros.java · Bloco de Código 2.8.1
import javax.swing.JOptionPane;
public class SomaDoisNumeros {
public static void main(String[] args) {
double primeiroValor;
double segundoValor;
double resultado;
primeiroValor = Double.parseDouble(JOptionPane.showInputDialog("Digite o primeiro valor"));
segundoValor = Double.parseDouble(JOptionPane.showInputDialog("Digite o segundo valor"));
resultado = primeiroValor + segundoValor;
}
}
7. Saída
A saída é simples, uma caixa de diálogo para exibir mensagens. O método showMessageDialog se encarrega desta tarefa. Veja o Bloco de Código 2.9.1.
SomaDoisNumeros.java · Bloco de Código 2.9.1
import javax.swing.JOptionPane;
public class SomaDoisNumeros {
public static void main(String[] args) {
double primeiroValor;
double segundoValor;
double resultado;
primeiroValor = Double.parseDouble(JOptionPane.showInputDialog("Digite o primeiro valor"));
segundoValor = Double.parseDouble(JOptionPane.showInputDialog("Digite o segundo valor"));
resultado = primeiroValor + segundoValor;
JOptionPane.showMessageDialog(null, resultado);
}
}
Note que o primeiro parâmetro é a palavra reservada null, sobre a qual discutiremos mais adiante. O segundo parâmetro é a expressão que resulta no valor que se deseja exibir.
É possível exibir um simples valor numérico, uma sequência de caracteres e, utilizando o operador de concatenação, podemos montar uma sequência textual interessante. Veja o exemplo do Bloco de Código 2.9.2. Repare no comentário que fizemos para que o programa produza a saída uma única vez.
SomaDoisNumeros.java · Bloco de Código 2.9.2
import javax.swing.JOptionPane;
public class SomaDoisNumeros {
public static void main(String[] args) {
double primeiroValor;
double segundoValor;
double resultado;
primeiroValor = Double.parseDouble(JOptionPane.showInputDialog("Digite o primeiro valor"));
segundoValor = Double.parseDouble(JOptionPane.showInputDialog("Digite o segundo valor"));
resultado = primeiroValor + segundoValor;
//JOptionPane.showMessageDialog(null, resultado);
JOptionPane.showMessageDialog(null, "O resultado é " + resultado);
}
}
8. Exercícios
Ler a cotação do dólar e a quantidade de dólares. Converter para real e mostrar o resultado.
Ler 4 números, calcular o quadrado para cada um, somar todos os quadrados e mostrar o resultado.
Calcular o pagamento de comissão de vendedores de peças, levando-se em consideração que sua comissão será de 5% do total da venda e que você tem os seguintes dados: preço unitário da peça e quantidade vendida.
Ler um valor inteiro e exibir seu antecessor.
Ler as dimensões de um retângulo (base e altura), calcular e escrever a área do retângulo.
Ler a idade de uma pessoa expressa em anos e exibir expressa em dias (considere que um ano tem 365 dias).
Ler a idade de uma pessoa expressa em anos, meses e dias e exibir a idade dessa pessoa expressa apenas em dias. Considerar ano com 365 dias e mês com 30 dias.
Ler o número total de eleitores de um município, o número de votos brancos, nulos e válidos. Calcular e escrever o percentual que cada um representa em relação ao total de eleitores.
Ler o salário mensal atual de um funcionário e o percentual de reajuste. Calcular e exibir o valor do novo salário.
O custo de um carro novo ao consumidor é a soma do custo de fábrica com a porcentagem do distribuidor e dos impostos (aplicados ao custo de fábrica). Supondo que o percentual do distribuidor seja de 28% e os impostos de 45%, ler o custo de fábrica de um carro, calcular e escrever o custo final ao consumidor.
Uma revendedora de carros usados paga a seus funcionários vendedores um salário fixo por mês, mais uma comissão também fixa para cada carro vendido e mais 5% do valor das vendas por ele efetuadas. Ler o número de carros por ele vendidos, o valor total de suas vendas, o salário fixo e o valor que ele recebe por carro vendido. Calcular e exibir o salário final do vendedor.
No plano cartesiano, a distância entre dois pontos $p_1(x_1, y_1)$ e $p_2(x_2, y_2)$ é definida como
$dist(p_1, p_2) = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2}$
Escreva um programa que lê os valores x1, y1, x2 e y2 nesta ordem e exibe a distância entre p1 e p2. Utilize valores reais. Vasculhe a documentação da classe
Mathno link a seguir e encontre um método apropriado para o cálculo da raiz quadrada. https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Math.htmlA área de um círculo pode ser calculada da seguinte forma
$A = \pi \cdot r^2$
Faça um programa que lê o valor do raio e exibe a área calculada. Vasculhe a documentação da classe
Mathno link a seguir e utilize a sua constante que representa o valor de pi. https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Math.htmlSuponha que um aluno tem três notas: A, B e C. Para calcular a média final, seu professor aplica os pesos 2, 3 e 5, respectivamente. Escreva um programa que lê os valores A, B e C e seus respectivos pesos. O programa deve produzir a média ponderada conforme descrito.
Escreva um programa que lê dois valores inteiros A e B e exibe o texto "Soma: " seguido da soma de A e B. Se A = 2 e B = 3, por exemplo, o programa deve exibir
Soma: 5.Faça um programa que lê um número inteiro e calcula o menor número de notas suficiente para representar tal valor. Considere a existência de notas de valores 200, 100, 50, 20, 10, 5, 2 e 1. Por exemplo, se o valor lido for 643, esse valor pode ser representado por:
- 3 notas de 200
- 2 notas de 20
- 1 nota de 2
- 1 nota de 1
Assim, seu programa deve exibir o texto "7 notas". Dica: use os operadores
/e%.
9. Encerramento
Você escreveu programas de sequência simples em Java: declarou variáveis de tipos primitivos, leu dados com showInputDialog, converteu textos em números com Double.parseDouble, fez cálculos com os operadores aritméticos e exibiu resultados com showMessageDialog.
Próximos passos
- Resolva o desafio e os exercícios deste codelab
- Siga para o codelab de estruturas de seleção, em que os programas passam a tomar decisões