Ajuda java - calculadora

Prezados, Boa tarde!

Recebi um exercício para fazer mas não estou conseguindo montar ele. Eu uso o REPLIT para fazer meus programas. Poderiam me auxiliar?

PROBLEMA: //Crie uma rotina que crie uma calculadora, onde o usuário escolha em um menu as opções de soma, subtração, divisão e multiplicação, e após a escolha ele informa os parâmetros necessários para a realização da operação

COMO EU ESTOU TENTANDO FAZER:

import java.util.Scanner;

class Main {

  public static void main(String[] args) {

//Crie uma rotina que crie uma calculadora, onde o usuário escolha em um menu as opções de soma, subtração, divisão e multiplicação, e após a escolha ele informa os parâmetros necessários para a realização da operação
  
  int = n1;
  int = n2;

Scanner input = new Scanner(System.in);

System.oul.println("Qual o primeiro número?");
n1 = imput.nextInt();
System.oul.println("Qual o segundo número?");
n2 = imput.nextInt();

  
System.out.println("Soma: "+(n1+n2));
System.out.println("Subtração: "-(n1-n2));
System.out.println("Multiplicação: "*(n1*n2));
System.oul.println("Divisão: "+(n1/n2));
  
  
  }
  
  
  
  }
}

Estou fazendo assim mas está dando erro.

Obrigada a todos!

Isso foi erro de digitação ou o código está assim mesmo? Porque o certo é só int n1;.

E vc cria a variável input, mas no código você usa imput.

E quando disser que algo “deu erro”, é importante colocar mais informações: a mensagem de erro, o que vc digitou quando deu erro, etc. Senão não temos como adivinhar…

1 curtida

eu coloco `int n1; mas mesmo assim fica com erro

Sem querer ser chato, mas vou repetir: quando disser que algo “deu erro”, é importante colocar mais informações: a mensagem de erro, o que vc digitou quando deu erro, etc. Senão não temos como adivinhar…

2 curtidas

Também tem um erro aqui: “oul” ao invés de “out”.

1 curtida

Arrumei meu código e ficou assim:

import java.util.Scanner;

class Main {

public static void main(String[] args) {

//Crie uma rotina que crie uma calculadora, onde o usuário escolha em um menu as opções de soma, subtração, divisão e multiplicação, e após a escolha ele informa os parâmetros necessários para a realização da operação

do{
Scanner input = new Scanner(System.in);

int n1;
int n2;

System.out.println(“Qual o primeiro número?”);
n1 = input.nextInt();
System.out.println(“Qual o segundo número?”);
n2 = imput.nextInt();

System.out.println("Soma: "+(n1+n2));
System.out.println("Subtração: "-(n1-n2));
System.out.println("Multiplicacao: "(n1n2));
System.out.println("Divisão: "+(n1/n2));

}
}

OS ERROS Q APARECE:

 javac -classpath .:/run_dir/junit-4.12.jar:target/dependency/* -d . Main.java
Main.java:10: error: cannot find symbol
Scanner input = new Scanner(System.in);
^
symbol: class Scanner
location: class Main
Main.java:10: error: cannot find symbol
Scanner input = new Scanner(System.in);
^
 javac -classpath .:/run_dir/junit-4.12.jar:target/dependency/* -d . Main.java
Main.java:11: error: cannot find symbol
Scaner input = new Scaner(System.in);
^
symbol: class Scaner
location: class Main
Main.java:11: error: cannot find symbol
Scaner input = new Scaner(System.in);
^
 javac -classpath .:/run_dir/junit-4.12.jar:target/dependency/* -d . Main.java
Main.java:28: error: while expected
}
^
Main.java:29: error: illegal start of expression
}
^
2 errors
exit status 1
 ^C

OS ERROS Q APARECE:

 javac -classpath .:/run_dir/junit-4.12.jar:target/dependency/* -d . Main.java
Main.java:10: error: cannot find symbol
Scanner input = new Scanner(System.in);
^
symbol: class Scanner
location: class Main
Main.java:10: error: cannot find symbol
Scanner input = new Scanner(System.in);
^
 javac -classpath .:/run_dir/junit-4.12.jar:target/dependency/* -d . Main.java
Main.java:11: error: cannot find symbol
Scaner input = new Scaner(System.in);
^
symbol: class Scaner
location: class Main
Main.java:11: error: cannot find symbol
Scaner input = new Scaner(System.in);
^
 javac -classpath .:/run_dir/junit-4.12.jar:target/dependency/* -d . Main.java
Main.java:28: error: while expected
}
^
Main.java:29: error: illegal start of expression
}
^
2 errors
exit status 1

Erro de digitação, parece que você já corrigiu.

Parece que tá faltando um } no final do arquivo. Sempre deixe o código bem indentado pra perceber esses erros e facilitar a leitura.

1 curtida

Tem vários problemas aí.

Faltou fechar um } no final. O do faz parte do do/while, ele não pode ficar sozinho ali (faltou o while correspondente).

Aqui:

System.out.println("Soma: " + (n1 + n2));
System.out.println("Subtração: " - (n1 - n2));

O primeiro sinal de + (logo depois das aspas) serve para concatenar strings (no caso, o texto "Soma: " é concatenado com o resultado de n1 + n2). Então na linha de baixo, depois das aspas, tem que ser + também. O mesmo vale para as outras.

E você continua usando imput, quando a variável na verdade se chama input (com “n”, não com “m”). Preste atenção nesses detalhes.

Enfim, o programa (sem o loop por enquanto) fica assim:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("Qual o primeiro número?");
        int n1 = input.nextInt();
        System.out.println("Qual o segundo número ?");
        int n2 = input.nextInt();

        System.out.println("Soma: " + (n1 + n2));
        System.out.println("Subtração: " + (n1 - n2));
        System.out.println("Multiplicacao: "+ (n1 * n2));
        System.out.println("Divisão: " + (n1 / n2));
    }
}

Para compilar e rodar:

# compilar
javac Main.java

# rodar
java Main

Não acho que precisa passar os parâmetros de classpath no javac, já que esse código é muito simples e não tem nenhuma dependência externa. Se estiver rodando em sites como o Repl.it, eles podem colocar esses parâmetros automaticamente, mas enfim, nesse caso não é necessário.

Veja aqui o código rodando.


Se quiser colocar dentro de um loop para repetir várias vezes, seria algo como:

Scanner input = new Scanner(System.in); // criar o Scanner fora do loop (pois só precisa criar uma vez)

for (int i = 0; i < 5; i++) { // repetir 5 vezes
    System.out.println("Qual o primeiro número?");
    int n1 = input.nextInt();
    System.out.println("Qual o segundo número ?");
    int n2 = input.nextInt();

    System.out.println("Soma: " + (n1 + n2));
    System.out.println("Subtração: " + (n1 - n2));
    System.out.println("Multiplicacao: " + (n1 * n2));
    System.out.println("Divisão: " + (n1 / n2));
}
1 curtida