Estou trabalhando em um código que consiste em realizar as operações básicas (soma, subtração, multiplicação e divisão) entre dois números, e gostaria de saber se estou seguindo o caminho correto. Segue o código abaixo:
public class App {
public static void main(String[] args) {
Scanner scanner = new scanner(System.in);
float n1 = 0; n2 = 0;
do {
System.out.println("Digite um numero: ");
n1 = scanner.nextInt();
System.out.println("Digite outro: ");
n2 = Scanner.nextInt();
som = n1 + n2;
sub = n1 - n2;
mult = n1 * n2;
div = n1 / n2;
System.out.println("Resultado da soma: " +som);
System.out.println("Resultado da subtracao: " +sub);
System.out.println("Resultado da multiplicacao: " +mult);
System.out.println("Resultado da divisao: " +div);
System.out.println("Deseja repetir a operacao?");
String com = scanner.nextLine;
if (com.equals("Sim")) {
System.out.println("Repita o procedimento.");
}
while(com.equals("Nao"));
System.out.println("Operacao finalizada.");
}
}
}
E caso alguém pergunte… sim, eu sei que está dando erro, e também gostaria de saber o por quê disso.
Foi esses:
App.java:40: error: while expected
}
^
App.java:41: error: illegal start of expression
}
E não foi apenas nesse código, todos que eu utilizei o comando while aconteceu isso.
Boas amigo, corrigido, repare que tem variáveis que não foram declaradas, exp: mult = num1 * num2; “mult” não está declarado, sub também não e por ai… Quando quer ler uma operação tem de ler o char que declarou, senão o input não reconhece nada exp:“com = scanner.next().charAt(0);”
Para o Switch reconhecer uma variável char tem de estar entre aspas e não duplas aspas. De resto esta feito, já está a funcionar.
import java.util.Scanner;
public class App{
public static void main(String[] args) {
float num1, num2;
char com;
String op;
Scanner scanner = new Scanner(System.in);
do {
System.out.println("Pressione um dos simbolos no teclado para realizar determinada operacao: \n");
System.out.println("\t Soma: +");
System.out.println("\t Subtracao: -");
System.out.println("\t Multiplicacao: ");
System.out.println("\t Divisao: /");
com = scanner.next().charAt(0);
switch (com) {
case '+':
System.out.println("Digite o primeiro numero: ");
num1 = scanner.nextFloat();
System.out.println("Digite outro: ");
num2 = scanner.nextFloat();
float som = num1 + num2;
;
System.out.println("Resultado: " + som);
break;
case '-':
System.out.println("Digite um numero: ");
num1 = scanner.nextFloat();
System.out.println("Digite outro: ");
num2 = scanner.nextFloat();
float sub = num1 - num2;
System.out.println("Resultado: " + sub);
break;
case '*':
System.out.println("Digite um numero: ");
num1 = scanner.nextFloat();
System.out.println("Digit outro: ");
num2 = scanner.nextFloat();
float mult = num1 * num2;
System.out.println("Resultado: " + mult);
break;
case '/':
System.out.println("Digite um numero: ");
num1 = scanner.nextFloat();
System.out.println("Digite outro: ");
num2 = scanner.nextFloat();
float div = num1 / num2;
System.out.println("Resultado: " + div);
break;
default:
System.out.println("Comando nao reconhecido.");
}
System.out.println("Deseja realizar outra operacao (S) para continuar e (N) para sair?");
scanner.nextLine();
op = scanner.nextLine();
if (op.equalsIgnoreCase("S")) {
System.out.println("Repita o procedimento.");
}
} while (op.equalsIgnoreCase("S"));
System.out.println("Operacao finalizada.");
}
}