Ler dois valores reais e um caracter (*, +, - e /) e calcular o resultado - Métodos Java

Outro dia, outro exercício em que tenho dúvidas. O enunciado do exercício é o seguinte:

####Ler dois valores reais (Ex.: a e b) e um carácter (Ex.: ‘+’, ‘-‘,‘*’,’/’) e calcular o resultado de cada expressão em função do caracter escolhido (Ex.: a+b).

Esse é o código que já fiz e que não consigo resolver até ao final:

import java.util.Scanner;

public class Ex_19 {

public static void main(String[] args) {

    double a = pedirreal();

    double b = pedirreal();

    operadoraritmetico(a,b);

}

public static double pedirreal(){

    Scanner teclado = new Scanner(System.in);

    System.out.print("Insira um número real : ");

    double real = teclado.nextDouble();
    return real;
}

public static void operadoraritmetico(double a, double b){

    System.out.println("Insira +, -, * ou / para executar, respetivamente, a soma, diferença, produto ou divisão dos números introduzidos: ");

     char op1 = op1.charAt(0);
    switch(op1){
        case '*':
            System.out.println("O produto dos números introduzidos é: "+(a*b));

            break;

        case '+':
            System.out.println("A soma dos números introduzidos é :"+(a+b));

            break;

        case '-':
            System.out.println("A diferença dos números introduzidos é :"+(a-b));

            break;

        case '/':
            System.out.println("A divisão dos números introduzidos é :"+(a/b));

            break;

        default:
            System.out.println("Operador introduzido inválido!!!!");

            break;
     }
    }
}

Tu nunca estás a ler o operador do utilizador. Alias, esse código nem deve compilar nessa parte!

Se, para ler os números precisas de ler do System.in, para ler o operador também deverás precisar, certo?

2 curtidas

Cara:

 public static void main(String[] args) {

    double a = pedirreal();

    double b = pedirreal();

    operadoraritmetico(a,b);

}

public static double pedirreal(){

    Scanner teclado = new Scanner(System.in);

    System.out.print("Insira um número real : ");

    double real = teclado.nextDouble();
    return real;
}

public static void operadoraritmetico(double a, double b){

    Scanner teclado = new Scanner(System.in);
    
    System.out.println("Insira +, -, * ou / para executar, respetivamente, a soma, diferença, produto ou divisão dos números introduzidos: ");
    char op1 = teclado.next().charAt(0);
     
    switch(op1){
        case '*':
            System.out.println("O produto dos números introduzidos é: "+(a*b));

            break;

        case '+':
            System.out.println("A soma dos números introduzidos é :"+(a+b));

            break;

        case '-':
            System.out.println("A diferença dos números introduzidos é :"+(a-b));

            break;

        case '/':
            System.out.println("A divisão dos números introduzidos é :"+(a/b));

            break;

        default:
            System.out.println("Operador introduzido inválido!!!!");

            break;
    }
}

apenas precisa adicionar o scanner no metodo operadoraritimetico e pegar a entrada do teclado.O codigo acima esta funcionando(Testei todas as operaçoes aritmeticas com a=2 e b=2).

1 curtida

Obrigado pessoal!!! Consegui!

1 curtida