Esta atividade contém 10 exercícios de Java básico para você resolver. Cada exercício foca em um conceito específico e está preparado para alunos novatos.
- Praticar conceitos fundamentais de Java
- Desenvolver habilidades de programação básica
- Aprender a usar Scanner, estruturas condicionais e laços de repetição
- Criar e utilizar métodos
Objetivo: Aprender a usar o Scanner para entrada de dados
- Crie um programa que leia o nome e a idade de uma pessoa
- Exiba uma mensagem de boas-vindas personalizada
Exemplo de saída esperada:
=== QUESTÃO 1 - SCANNER ===
Informe seu nome: João
Informe sua idade: 20
Olá João! Você tem 20 anos. Seja bem-vindo(a)!
Objetivo: Praticar formatação de saída
- Crie um programa que exiba uma tabela de multiplicação do 5 (de 1 a 10)
- Formate a saída de forma organizada
Exemplo de saída esperada:
=== QUESTÃO 2 - PRINT ===
Tabela de multiplicação do 5:
5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
...
5 x 10 = 50
Objetivo: Aprender a usar o laço for
- Crie um programa que calcule e exiba a soma dos números de 1 até 100
- Use um laço for para fazer o cálculo
Exemplo de saída esperada:
=== QUESTÃO 3 - FOR ===
A soma dos números de 1 até 100 é: 5050
Objetivo: Praticar estruturas condicionais
- Crie um programa que leia uma nota
- Informe se o aluno foi aprovado (nota >= 7), reprovado (nota < 4) ou está em recuperação (4 <= nota < 7)
Exemplo de saída esperada:
=== QUESTÃO 4 - IF ===
Informe sua nota: 8.5
Parabéns! Você foi APROVADO!
Objetivo: Aprender a usar o laço while
- Crie um programa que leia números inteiros até que o usuário digite 0
- Exiba a soma de todos os números digitados
Exemplo de saída esperada:
=== QUESTÃO 5 - WHILE ===
Digite números inteiros (digite 0 para parar):
5
3
7
0
A soma de todos os números digitados é: 15
Objetivo: Criar e usar métodos
- Implemente o método
encontrarMaior()que receba dois números e retorne o maior entre eles - Teste o método com diferentes valores no main
Exemplo de saída esperada:
=== QUESTÃO 6 - MÉTODOS ===
Informe dois números para comparar:
10
5
O maior número entre 10 e 5 é: 10
Objetivo: Combinar entrada de dados com estruturas condicionais
- Crie um programa que leia um número
- Informe se ele é par ou ímpar usando o operador % (módulo)
Exemplo de saída esperada:
=== QUESTÃO 7 - SCANNER + IF ===
Informe um número para verificar se é par ou ímpar:
8
O número 8 é PAR.
Objetivo: Combinar laço for com saída formatada
- Crie um programa que exiba todos os números pares de 2 até 20
- Exiba um número por linha
Exemplo de saída esperada:
=== QUESTÃO 8 - FOR + PRINT ===
Números pares de 2 até 20:
2
4
6
8
10
12
14
16
18
20
Objetivo: Combinar laço while com entrada de dados
- Crie um programa que leia números até que o usuário digite um número negativo
- Conte quantos números positivos foram digitados
Exemplo de saída esperada:
=== QUESTÃO 9 - WHILE + SCANNER ===
Digite números (digite um número negativo para parar):
5
3
7
2
-1
Foram digitados 4 números positivos.
Objetivo: Criar métodos que usam laços de repetição
- Implemente o método
calcularFatorial()que receba um número e retorne o fatorial desse número - Teste o método com os valores 5 e 7
Exemplo de saída esperada:
=== QUESTÃO 10 - MÉTODOS + FOR ===
Testando fatorial de 5: 120
Testando fatorial de 7: 5040
Abra o arquivo src/fag/Principal.java no seu editor de código.
- Cada questão tem um comentário
// SEU CÓDIGO AQUIonde você deve implementar sua solução - Leia atentamente as instruções de cada questão
- Use os exemplos de saída como referência
# Compilar e executar com Maven
mvn compile exec:java -Dexec.mainClass="fag.Principal"
# Ou compilar manualmente
javac -d target/classes -cp "target/classes" src/main/java/fag/*.java
java -cp target/classes fag.PrincipalPara as questões 6 e 10, você pode verificar se sua implementação está correta executando os testes:
# Executar todos os testes
mvn test
# Executar apenas os testes de fatorial
mvn test -Dtest=PrincipalTest#testCalcularFatorial*
# Executar apenas os testes de encontrar maior
mvn test -Dtest=PrincipalTest#testEncontrarMaior*
# Ver relatório amigável após os testes
mvn compile exec:java -Dexec.mainClass="fag.RelatorioTestes"# 1. Baixar as dependências do JUnit (se não tiver Maven)
# Baixe os arquivos JAR do JUnit 5 do site oficial
# 2. Compilar o código
javac -cp "junit-jupiter-api-5.9.2.jar:junit-jupiter-engine-5.9.2.jar" -d bin src/fag/*.java
# 3. Executar os testes
java -cp "bin:junit-jupiter-api-5.9.2.jar:junit-jupiter-engine-5.9.2.jar" org.junit.platform.console.ConsoleLauncher --scan-classpath- Clique com botão direito no arquivo
PrincipalTest.java - Selecione "Run Tests" ou "Executar Testes"
- Ou use o atalho
Ctrl+Shift+F10(IntelliJ) ouAlt+Shift+X, T(Eclipse)
✅ testEncontrarMaior_PrimeiroMaior() - PASSED
Significa que sua implementação está correta!
❌ testCalcularFatorial_Numero5() - FAILED
Expected: 120
Actual: 0
Significa que há um erro na sua implementação. Verifique:
- Se você removeu o
return 0;do método - Se a lógica do fatorial está correta
- Se está usando o tipo
longpara evitar overflow
Problema: O JUnit não está sendo reconhecido pelo IDE.
Soluções:
- Use Maven: Execute
mvn test(mais confiável) - Verifique as dependências: Certifique-se de que o JUnit está no classpath
- Baixe os JARs: Baixe os arquivos JAR do JUnit 5 do site oficial
Problema: Os métodos encontrarMaior() ou calcularFatorial() não foram implementados.
Solução: Implemente os métodos no arquivo Principal.java conforme os exemplos no README.
Problema: Erro de sintaxe no código.
Solução: Verifique se:
- Todos os
{e}estão balanceados - Não há ponto e vírgula faltando
- Os tipos de dados estão corretos (
int,long, etc.)
Problema: Problemas com configuração de módulos.
Solução: O arquivo module-info.java foi removido para simplificar. Use apenas:
mvn testProblema: Maven não está encontrando os testes.
Solução: Certifique-se de que os arquivos estão na estrutura correta:
- Código principal:
src/main/java/fag/Principal.java - Testes:
src/test/java/fag/PrincipalTest.java
$ mvn test
[INFO] Scanning for projects...
[INFO]
[INFO] --- maven-surefire-plugin:3.0.0:test (default-test) ---
[INFO] Using auto detected provider org.apache.maven.surefire.junitplatform.JUnitPlatformProvider
[INFO]
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running fag.PrincipalTest
[INFO] Tests run: 10, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.123 s
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 10, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] BUILD SUCCESSO projeto inclui testes unitários para verificar se suas implementações estão corretas:
- Questão 6: Testa o método
encontrarMaior() - Questão 10: Testa o método
calcularFatorial()
# Com Maven (Recomendado)
mvn test
# Com JUnit diretamente (se configurado)
javac -cp "junit-jupiter-api-5.9.2.jar:junit-jupiter-engine-5.9.2.jar" -d bin src/fag/*.java
java -cp "bin:junit-jupiter-api-5.9.2.jar:junit-jupiter-engine-5.9.2.jar" org.junit.platform.console.ConsoleLauncher --scan-classpathProva1bt02/
├── src/
│ ├── main/java/fag/
│ │ └── Principal.java # Template com exercícios para resolver
│ └── test/java/fag/
│ └── PrincipalTest.java # Testes unitários automáticos
├── target/ # Arquivos compilados pelo Maven
├── pom.xml # Configuração do Maven
└── README.md # Este arquivo
- ✅ Scanner: Entrada de dados do usuário
- ✅ Print: Saída formatada de dados
- ✅ For: Laço de repetição com contador
- ✅ If/Else: Estruturas condicionais
- ✅ While: Laço de repetição com condição
- ✅ Métodos: Criação e uso de funções
- ✅ Combinações: Uso de múltiplos conceitos juntos
- Leia atentamente cada questão antes de começar a implementar
- Use os exemplos de saída como referência para o formato esperado
- Teste cada questão individualmente antes de passar para a próxima
- Para as questões 6 e 10, use os testes unitários para verificar se está correto
- Se tiver dúvidas, revise os conceitos básicos de Java antes de continuar
public static int encontrarMaior(int a, int b) {
if (a > b) {
return a;
} else {
return b;
}
}public static long calcularFatorial(int n) {
long fatorial = 1;
for (int i = 1; i <= n; i++) {
fatorial *= i;
}
return fatorial;
}System.out.println("Informe dois números para comparar:");
int num1 = scan.nextInt();
int num2 = scan.nextInt();
int maior = encontrarMaior(num1, num2);
System.out.println("O maior número entre " + num1 + " e " + num2 + " é: " + maior);System.out.println("Testando fatorial de 5: " + calcularFatorial(5));
System.out.println("Testando fatorial de 7: " + calcularFatorial(7));- Java 11 ou superior
- JUnit 5 (para testes)
- Maven (opcional, para gerenciamento de dependências)
- Implementação correta da lógica de cada questão
- Formatação adequada da saída conforme os exemplos
- Uso correto dos conceitos solicitados (Scanner, For, If, While, Métodos)
- Testes unitários passando para as questões 6 e 10
Boa sorte com os exercícios! 🍀
Lembre-se: a prática leva à perfeição. Não desista se algo não funcionar na primeira tentativa!