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:
publicclassApp{publicstaticvoidmain(String[]args){Scannerscanner=newscanner(System.in);floatn1=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?");Stringcom=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.
publicclassCalcular{publicdoublecalculadora(doublenum1,doublenum2,Stringoperador){doubleresultado=0;switch(operador){case"+":resultado=num1+num2;break;case"-":resultado=num1-num2;break;case"/":resultado=num1/num2;break;case"*":resultado=num1*num2;break;}System.out.println("O resultado da operação é: "+resultado);returnresultado;}publicstaticvoidmain(String[]args){Calcularcalculadora=newCalcular();Scannerobj=newScanner(System.in);booleansair=false;do{System.out.println("introduza numero 1");doublenum1=obj.nextDouble();System.out.println("introduza numero 2");doublenum2=obj.nextDouble();System.out.println("introduza operador");obj.nextLine();Stringoperador=obj.next();calculadora.calculadora(num1,num2,operador);System.out.println("Prima 1 para continuar e 0 para sair");intout=obj.nextInt();if(out==1){sair=false;}else{if(out==0){sair=true;}}}while(sair!=true);System.out.println("ATE LOGO :)");}}
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.
importjava.util.Scanner;publicclassApp{publicstaticvoidmain(String[]args){floatnum1,num2;charcom;Stringop;Scannerscanner=newScanner(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();floatsom=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();floatsub=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();floatmult=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();floatdiv=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.");}}