@crixoliveira escreveu:
Estou desenvolvimento meus conhecimentos em Java e estou com mais um desafio. Criar uma classe Calculadora, MAS com fluxos de exceção para 3 casos específicos:
- só poderá existir números positivos (ex. NumberFormatException)
- não poderá existir divisão por número primo (ex. DivisaoPorNumPrimoException)
- não poderá existir a multiplicação por números primos. (ex.
MultiplicacaoPorNumPrimoException)Pesquisando aqui no grupo achei a classe de um colega e estou estudando ela para aplicar essas exceções. Será que alguém me ajudaria???
import java.util.Scanner; public class Calculadora { public static void main (String args[]){ short operacao; double num1, num2; Scanner input = new Scanner(System.in); do { System.out.println("Digite a operacao desejada:"); System.out.println(" 1. Soma"); System.out.println(" 2. Subtracao"); System.out.println(" 3. Multiplicacao"); System.out.println(" 4. Divisao"); System.out.println(" 0. Sair"); System.out.print("Operacao: "); operacao = input.nextShort(); if (operacao == 0) { System.out.println("Bye bye!"); break; } if (!OperacaoExiste(operacao)) { continue; } System.out.print("Digite o primeiro valor: "); num1 = input.nextDouble(); System.out.print("Digite o segundo valor: "); num2 = input.nextDouble(); if (!ValidaDadosDeEntrada(operacao, num1, num2)) { continue; } System.out.println("RESULTADO: O resultado da operacao " + getNomeOperacao(operacao) + " eh " + Calcular(operacao, num1, num2) + "\n"); } while (operacao != 0); } static double Calcular (short operacao, double num1, double num2) { double resultado = 0; switch (operacao) { case 1: //soma resultado = num1 + num2; break; case 2: //substração resultado = num1 - num2; break; case 3: //multiplicação resultado = num1 * num2; break; case 4: //divisão resultado = num1 / num2; break; } return resultado; } static boolean OperacaoExiste (short operacao) { boolean retorno = true; if (operacao > 4) { System.out.println("ERRO: Operacao escolhida eh invalida.\n"); retorno = false; } return retorno; } static boolean ValidaDadosDeEntrada (short operacao, double num1, double num2) { boolean retorno = true; if (operacao == 4 & num2 == 0) { System.out.println("ERRO: Divisor nao pode ser zero.\n"); retorno = false; } return retorno; } static String getNomeOperacao (short operacao) { switch (operacao) { case 1: return "soma"; case 2: return "subtracao"; case 3: return "multiplicacao"; case 4: return "divisao"; default: return "undefined"; } } }
Mensagens: 5
Participantes: 2