Desafio1. Crie um programa simples que solicita dois números ao usuário e realiza a divisão do primeiro pelo segundo. Utilize o bloco try/catch para tratar a exceção que pode ocorrer caso o usuário informe 0 como divisor.
public interface Operador {
void dividir(int num1, int num2, double resultado);
}
import java.util.Scanner;
import static java.lang.System.exit;
public class Calculadora implements Operador{
private int num1;
private int num2;
private double resultado;
//Construtor
public Calculadora(int num1, int num2, double resultado) {
this.num1 = num1;
this.num2 = num2;
this.resultado = resultado;
}
//Instanciando novo objeto Scanner
Scanner sc = new Scanner(System.in);
//Método entrada de dados
public void entrarDados() {
System.out.println("""
*******************************
Welcome to Ultimate Calculator
*******************************
""");
int opcao = 1;
do {
System.out.println("Insira o primeiro numero inteiro: ");
this.setNum1(sc.nextInt());
System.out.println("Insira o segundo numero inteiro: ");
this.setNum2(sc.nextInt());
dividir(getNum1(), getNum2(), getResultado());
System.out.println("""
\nDeseja Realizar nova operação Matemática?
1 - SIM
2 - NÃO
""");
int selecao = sc.nextInt();
if (selecao == 2) {
System.out.println("Saindo do programa... até mais!");
exit(0);
} else {
continue;
}
} while (opcao == 1);
}
//Sobrecarga dos métodos de implementação obrigatória da Interface
public void dividir(int num1, int num2, double resultado) {
try {
this.setResultado(this.getNum1() / this.getNum2());
System.out.println("**************************************");
System.out.println("O valor da divisão entre: " + this.getNum1() + " / " + this.getNum2() +
" é: " + this.getResultado());
System.out.println("**************************************");
}
//Se executar operação divisão numero por zero. é lançado o ArithmeticException
//é realizada a trativa do erro para que o programa não pare a execução.
catch (ArithmeticException ae) {
System.out.println("************");
System.out.println(num1 + " " + ae.getMessage());
System.out.println("***************************************************************");
System.out.println("Você tentou dividir por zero (não é possível). Tente novamente!");
System.out.println("***************************************************************");
}
}
//getters e setters
public int getNum1() {
return num1;
}
public void setNum1(int num1) {
this.num1 = num1;
}
public int getNum2() {
return num2;
}
public void setNum2(int num2) {
this.num2 = num2;
}
public double getResultado() {
return resultado;
}
public void setResultado(double resultado) {
this.resultado = resultado;
}
}
public class Principal {
public static void main(String[] args) {
Calculadora calc = new Calculadora(0,0,0);
calc.entrarDados();
}
}