Quantcast
Channel: Programação - GUJ
Viewing all articles
Browse latest Browse all 33093

Fluxo de Exceção - Classe Calculadora

$
0
0

@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:

  1. só poderá existir números positivos (ex. NumberFormatException)
  2. não poderá existir divisão por número primo (ex. DivisaoPorNumPrimoException)
  3. 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

Ler tópico completo


Viewing all articles
Browse latest Browse all 33093


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>