From e9803055fad3e811ed4d86105c64c6fbb6af26f7 Mon Sep 17 00:00:00 2001 From: Gabriel Vogado Date: Sun, 2 Feb 2025 18:30:29 -0300 Subject: [PATCH] feat: add GabrielVogado Desafio Controle de Fluxo --- .gitignore | 1 + .../src/application/Contador.java | 49 +++++++++++++++++++ .../ParametrosInvalidosException.java | 7 +++ trilha-java-basico.iml | 11 +++++ 4 files changed, 68 insertions(+) create mode 100644 desafios/controle-fluxo/src/application/Contador.java create mode 100644 desafios/controle-fluxo/src/exception/ParametrosInvalidosException.java create mode 100644 trilha-java-basico.iml diff --git a/.gitignore b/.gitignore index e1eacd16..a00d0be0 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,4 @@ hs_err_pid* /.vscode settings.json +/.idea/ diff --git a/desafios/controle-fluxo/src/application/Contador.java b/desafios/controle-fluxo/src/application/Contador.java new file mode 100644 index 00000000..9b8070eb --- /dev/null +++ b/desafios/controle-fluxo/src/application/Contador.java @@ -0,0 +1,49 @@ +package application; + +import exception.ParametrosInvalidosException; + +import java.util.InputMismatchException; +import java.util.Scanner; + +public class Contador { + public static void main(String[] args) { + Scanner terminal = new Scanner(System.in); + try { + System.out.println("Digite o primeiro parâmetro:"); + int parametroUm = lerParametro(terminal); + System.out.println("Digite o segundo parâmetro:"); + int parametroDois = lerParametro(terminal); + + contar(parametroUm, parametroDois); + } catch (ParametrosInvalidosException e) { + System.err.println(e.getMessage()); + } catch (InputMismatchException e) { + System.err.println("Por favor, insira um número inteiro válido."); + } finally { + terminal.close(); + } + } + + private static int lerParametro(Scanner terminal) { + while (true) { + try { + return terminal.nextInt(); + } catch (InputMismatchException e) { + System.err.println("Entrada inválida. Por favor, insira um número inteiro:"); + terminal.next(); // Limpa a entrada inválida + } + } + } + + static void contar(int parametroUm, int parametroDois) throws ParametrosInvalidosException { + if (parametroUm > parametroDois) { + throw new ParametrosInvalidosException("O segundo parâmetro deve ser maior que o primeiro."); + } + + int contagem = parametroDois - parametroUm; + for (int i = 1; i <= contagem; i++) { + System.out.println("Imprimindo o número " + i); + } + } +} + diff --git a/desafios/controle-fluxo/src/exception/ParametrosInvalidosException.java b/desafios/controle-fluxo/src/exception/ParametrosInvalidosException.java new file mode 100644 index 00000000..a8b0e547 --- /dev/null +++ b/desafios/controle-fluxo/src/exception/ParametrosInvalidosException.java @@ -0,0 +1,7 @@ +package exception; + +public class ParametrosInvalidosException extends RuntimeException { + public ParametrosInvalidosException(String message) { + super(message); + } +} diff --git a/trilha-java-basico.iml b/trilha-java-basico.iml new file mode 100644 index 00000000..0d40a67c --- /dev/null +++ b/trilha-java-basico.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file