Ir ao conteúdo

Posts recomendados

Postado

Estou com o seguinte erro ao tentar compilar meu código:

 Menu.java:16: error: illegal start of expression
public static void menu(){
^

1 error

 

 

Preciso criar um menu, que o usuário entre com os números e escolha a operação matemática e as apresente. Ainda fico muito perdido em um código assim rsrs, alguém pode me ajudar a finalizar, é meio urgente!

 

import java.io.*;
import java.util.Scanner;
public class Menu {
public static void main(String arg[]){

Scanner scan = new Scanner(System.in);

int a;
System.out.println("Digite o primeiro numero:");
a = scan.nextInt();

int b;
System.out.println("Digite o segundo numero:");
b = scan.nextInt();

public static void menu(){
System.out.println("\tMenu de operacoes");
System.out.println("0. Sair");
System.out.println("1. Somar A e B");
System.out.println("2. Multiplicar A e B");
System.out.println("3. Subtrair A e B");
System.out.println("5. Dividir A e B");
System.out.println("Opcao:");
}

public static void somar(){
System.out.println("voce vai Somar a+b.");
}

public static void multiplicar(){
System.out.println("voce vai Multiplicar a*b.");
}

public static void subtrair(){
System.out.println("voce vai Subtrair a-b.");
}

public static void dividir(){
System.out.println("voce vai Dividir a/b.");
}

public static void main(String[] arg){
int operacao;
Scanner entrada = new Scanner(System.in);

do{
menu();
operacao = entrada.nextInt();

switch(operacao){
      case 1:
            somar();
            somar = a + b;
            System.out.printf("A soma de A e B e: %3d", somar);
            break;

      case 2:
            multiplicar();
            multiplicar = a * b;
            System.out.printf("A multiplicacao de A e B e: %3d", multiplicar);
            break;


      case 3:
            subtrair();
            subtrair = a - b;
            System.out.printf("A subtracao de A e B e: %3d", subtrair);
            break;


      case 5:
            dividir();
            dividir = a / b;
            System.out.printf("A divisao de A e B e: %3d", dividir);
            break;
  

default:
System.out.println("Opcao invalida.");
}

} while(opcao !=0);
}
}

 

Postado

Você também declarou main duas vezes,

 

Acho que os métodos com nomes de operaçãoes deveriam receber valores como parâmetros e executar a própria operação.

 

E fica meio estranho esse programa ter apenas métodos estáticos e não instanciar nenhuma classe além de Scanner.

 

 

  • Curtir 1
Postado

Do jeito que está, seus métodos são inúteis, pois não recebem parâmetros e não retornam resultados. Como já disseram, sua classe possui dois métodos main.

 

Segue o código corrigido.

Spoiler

package victor_hugo_barbosa_sailva;

import java.util.Scanner;

public class Calculadora {

    private static final Scanner SCANNER = new Scanner(System.in);

    public static void main(String[] arg) {
        int operacao;

        double valor1 = 0.0;
        double valor2 = 0.0;
        double resultado;

        do {
            operacao = menu();

            switch (operacao) {
                case 0:
                    break;
                case 1:
                    resultado = somar(valor1, valor2);
                    System.out.printf("A soma de A e B e: %.2f \n", resultado);
                    break;
                case 2:
                    resultado = multiplicar(valor1, valor2);
                    System.out.printf("A multiplicacao de A e B e: %.2f \n", resultado);
                    break;
                case 3:
                    resultado = subtrair(valor1, valor2);
                    System.out.printf("A subtracao de A e B e: %.2f \n", resultado);
                    break;
                case 5:
                    resultado = dividir(valor1, valor2);
                    System.out.printf("A divisao de A e B e: %.2f \n", resultado);
                    break;
                default:
                    System.out.println("Opcao invalida. \n");
                    break;
            }
        } while (operacao != 0);
    }

    public static int menu() {
        while (true) {
            System.out.println("\tMenu de operacoes");
            System.out.println("0. Sair");
            System.out.println("1. Somar A e B");
            System.out.println("2. Multiplicar A e B");
            System.out.println("3. Subtrair A e B");
            System.out.println("5. Dividir A e B");
            System.out.print("Opcao: ");

            if (SCANNER.hasNextInt()) {
                break;
            } else {
                SCANNER.nextLine();
            }
        }

        int retorno = SCANNER.nextInt();
        SCANNER.nextLine();
        return retorno;
    }

    public static double somar(double valor1, double valor2) {
        return valor1 + valor2;
    }

    public static double multiplicar(double valor1, double valor2) {
        return valor1 * valor2;
    }

    public static double subtrair(double valor1, double valor2) {
        return valor1 - valor2;
    }

    public static double dividir(double valor1, double valor2) {
        return valor2 != 0
               ? valor1 / valor2
               : 0.0;
    }
}

 

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!