Vamos exercitar todo o conteúdo apresentado no módulo de Controle de Fluxo codificando o seguinte cenário.
O sistema deverá receber dois parâmetros via terminal que representarão dois números inteiros, com estes dois números você deverá obter a quantidade de interações (for) e realizar a impressão no console (System.out.print) dos números incrementados, exemplo:
- Se você passar os números 12 e 30, logo teremos uma interação (for) com 18 ocorrências para imprimir os números, exemplo:
"Imprimindo o número 1","Imprimindo o número 2"e assim por diante. - Se o primeiro parâmetro for MAIOR que o segundo parâmetro, você deverá lançar a exceção customizada chamada de
ParametrosInvalidosExceptioncom a segunda mensagem: "O segundo parâmetro deve ser maior que o primeiro"
- Crie o projeto
DesafioControleFluxo - Dentro do projeto, crie a classe
Contador.javapara realizar toda a codificação do nosso programa. - Dentro do projeto, crie a classe
ParametrosInvalidosExceptionque representará a exceção de negócio no sistema.
Abaixo segue a minha resolução:
Primeiro fazemos o arquivo de Exceção como uma extensão de Exception, como abaixo:
public class ParametrosInvalidosException extends Exception {
}Depois importamos a exceção para o nosso arquivo main através do throws:
import java.util.Scanner;
public class Contador {
public static void main(String[] args) {
Scanner terminal = new Scanner(System.in);
System.out.println("Digite o primeiro parâmetro");
int parametroUm = terminal.nextInt();
System.out.println("Digite o segundo parâmetro");
int parametroDois = terminal.nextInt();
try {
contar(parametroUm, parametroDois);
}catch (ParametrosInvalidosException e) {
System.out.println("O segundo parâmetro deve ser maior que o primeiro.");
}
}
static void contar(int parametroUm, int parametroDois ) throws ParametrosInvalidosException {
if (parametroUm >= parametroDois) {
throw new ParametrosInvalidosException();
}
int contagem = parametroDois - parametroUm;
for (int i = 1; i <= contagem; i++) {
System.out.println("Imprimindo o número " + i);
}
}
}E por fim temos o nossos resultados.
...

