Exercícios: lógica básica em Java
Nove exercícios resolvidos de lógica básica em Java, com programas sequenciais, de seleção (if/else e switch-case) e de repetição (while, for e do-while), usando JOptionPane e Scanner.
1. Visão geral
Esta lista reúne nove exercícios de lógica básica em Java, organizados em três grupos: programas sequenciais, programas com estruturas de seleção e programas com estruturas de repetição. Alguns usam as caixas de diálogo da classe JOptionPane; outros usam a classe Scanner para ler do terminal.
Tente resolver cada exercício antes de abrir a solução.
O que você vai praticar
- Entrada e saída com
JOptionPanee comScanner - Cálculos com variáveis
doubleeinte formatação comString.formateprintf - Seleção com
if/else,if/else ifeswitch-case - Repetição com
while,foredo-while
O que você vai precisar
- JDK instalado e um IDE ou editor de código
- Conhecer variáveis, entrada e saída, estruturas de seleção e de repetição
2. Exercícios sequenciais
1. Conversão de temperatura (sequencial – JOptionPane)
Desenvolva um programa que solicite ao usuário uma temperatura em graus Celsius e calcule a temperatura correspondente em Fahrenheit. Utilize a fórmula $F = C \times 1{,}8 + 32$ e apresente o resultado com duas casas decimais.
Ver resposta
Exercicio1.java
import javax.swing.JOptionPane;
public class Exercicio1 {
public static void main(String[] args) {
String entrada = JOptionPane.showInputDialog("Temperatura em Celsius:");
double celsius = Double.parseDouble(entrada);
double fahrenheit = celsius * 1.8 + 32;
JOptionPane.showMessageDialog(null,
String.format("Temperatura em Fahrenheit: %.2f °F", fahrenheit));
}
}
2. Custo de uma viagem (sequencial – Scanner)
Crie um programa que leia a distância total de uma viagem em quilômetros, o consumo médio do veículo em quilômetros por litro e o preço do litro do combustível. Calcule e mostre a quantidade estimada de litros necessários e o custo total da viagem.
Ver resposta
Exercicio2.java
import java.util.Scanner;
public class Exercicio2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Distância da viagem em km: ");
double distancia = scanner.nextDouble();
System.out.print("Consumo do veículo em km/l: ");
double consumo = scanner.nextDouble();
System.out.print("Preço do litro do combustível: R$ ");
double preco = scanner.nextDouble();
double litros = distancia / consumo;
double custo = litros * preco;
System.out.printf("Litros necessários: %.2f%n", litros);
System.out.printf("Custo total: R$ %.2f%n", custo);
scanner.close();
}
}
3. Média ponderada (sequencial – JOptionPane)
Elabore um programa que leia as notas de uma prova e de um trabalho. A prova possui peso 6 e o trabalho possui peso 4. Calcule e apresente a média ponderada do aluno.
Ver resposta
Exercicio3.java
import javax.swing.JOptionPane;
public class Exercicio3 {
public static void main(String[] args) {
double prova = Double.parseDouble(
JOptionPane.showInputDialog("Nota da prova:"));
double trabalho = Double.parseDouble(
JOptionPane.showInputDialog("Nota do trabalho:"));
double media = (prova * 6 + trabalho * 4) / 10;
JOptionPane.showMessageDialog(null,
String.format("Média ponderada: %.2f", media));
}
}
3. Exercícios de seleção
4. Número par ou ímpar (seleção – Scanner)
Faça um programa que leia um número inteiro e informe se ele é par ou ímpar. Utilize o operador de resto da divisão para realizar a verificação.
Ver resposta
Exercicio4.java
import java.util.Scanner;
public class Exercicio4 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Digite um número inteiro: ");
int numero = scanner.nextInt();
if (numero % 2 == 0) {
System.out.println("O número é par.");
} else {
System.out.println("O número é ímpar.");
}
scanner.close();
}
}
5. Situação do aluno (seleção – JOptionPane)
Desenvolva um programa que leia a média final de um aluno. Se a média for maior ou igual a 6,0, mostre "Aprovado". Se estiver entre 4,0 e 5,9, mostre "Recuperação". Caso seja menor que 4,0, mostre "Reprovado".
Ver resposta
Exercicio5.java
import javax.swing.JOptionPane;
public class Exercicio5 {
public static void main(String[] args) {
double media = Double.parseDouble(
JOptionPane.showInputDialog("Digite a média final:"));
String situacao;
if (media >= 6.0) {
situacao = "Aprovado";
} else if (media >= 4.0) {
situacao = "Recuperação";
} else {
situacao = "Reprovado";
}
JOptionPane.showMessageDialog(null, "Situação: " + situacao);
}
}
6. Dia da semana (seleção com switch-case – Scanner)
Crie um programa que leia um número inteiro de 1 a 7 e apresente o dia da semana correspondente, considerando 1 como domingo e 7 como sábado. Para qualquer valor fora desse intervalo, informe que a opção é inválida. Utilize switch-case.
Ver resposta
Exercicio6.java
import java.util.Scanner;
public class Exercicio6 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Digite um número de 1 a 7: ");
int numero = scanner.nextInt();
switch (numero) {
case 1: System.out.println("Domingo"); break;
case 2: System.out.println("Segunda-feira"); break;
case 3: System.out.println("Terça-feira"); break;
case 4: System.out.println("Quarta-feira"); break;
case 5: System.out.println("Quinta-feira"); break;
case 6: System.out.println("Sexta-feira"); break;
case 7: System.out.println("Sábado"); break;
default: System.out.println("Opção inválida.");
}
scanner.close();
}
}
4. Exercícios de repetição
7. Soma até zero (repetição com while – Scanner)
Faça um programa que leia números inteiros e acumule a soma dos valores digitados. A leitura deve continuar enquanto o usuário não digitar zero. Ao final, apresente a soma total e a quantidade de números diferentes de zero que foram informados.
Ver resposta
Exercicio7.java
import java.util.Scanner;
public class Exercicio7 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int soma = 0;
int quantidade = 0;
System.out.print("Digite um número inteiro (0 para encerrar): ");
int numero = scanner.nextInt();
while (numero != 0) {
soma += numero;
quantidade++;
System.out.print("Digite outro número (0 para encerrar): ");
numero = scanner.nextInt();
}
System.out.println("Soma: " + soma);
System.out.println("Quantidade de números: " + quantidade);
scanner.close();
}
}
8. Tabuada (repetição com for – JOptionPane)
Elabore um programa que leia um número inteiro e monte sua tabuada de 1 a 10. Utilize uma estrutura for e apresente toda a tabuada em uma única caixa de diálogo.
Ver resposta
Exercicio8.java
import javax.swing.JOptionPane;
public class Exercicio8 {
public static void main(String[] args) {
int numero = Integer.parseInt(
JOptionPane.showInputDialog("Digite um número inteiro:"));
StringBuilder tabuada = new StringBuilder();
for (int i = 1; i <= 10; i++) {
tabuada.append(numero)
.append(" x ")
.append(i)
.append(" = ")
.append(numero * i)
.append("\n");
}
JOptionPane.showMessageDialog(null, tabuada.toString(),
"Tabuada", JOptionPane.INFORMATION_MESSAGE);
}
}
9. Menu de operações (repetição com do-while – Scanner)
Crie um programa que apresente repetidamente um menu com as opções 1 - Somar dois números, 2 - Multiplicar dois números e 0 - Sair. Quando o usuário escolher 1 ou 2, leia dois valores e mostre o resultado. O menu deve ser exibido pelo menos uma vez e continuar até que a opção 0 seja escolhida. Utilize do-while.
Ver resposta
Exercicio9.java
import java.util.Scanner;
public class Exercicio9 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int opcao;
do {
System.out.println("1 - Somar");
System.out.println("2 - Multiplicar");
System.out.println("0 - Sair");
System.out.print("Opção: ");
opcao = scanner.nextInt();
if (opcao == 1 || opcao == 2) {
System.out.print("Primeiro número: ");
double a = scanner.nextDouble();
System.out.print("Segundo número: ");
double b = scanner.nextDouble();
if (opcao == 1) {
System.out.println("Resultado: " + (a + b));
} else {
System.out.println("Resultado: " + (a * b));
}
} else if (opcao != 0) {
System.out.println("Opção inválida.");
}
} while (opcao != 0);
scanner.close();
}
}
5. Encerramento
Você praticou os três tipos de estrutura da lógica básica: sequência, seleção e repetição, alternando entre JOptionPane e Scanner para a entrada e a saída de dados.
Próximos passos
- Refaça os exercícios trocando
JOptionPaneporScannere vice-versa - Siga para a introdução à programação orientada a objetos