Problema:
Elabore um programa em Java que leia uma expressão aritmética simples, fornecia pelo usuário através do prompt de comando e calcule seu resultado:
Exemplo de entrada: 25+9
Exemplo de saída: 25+9= 34
Objetivo:
Apresentar aos alunos a estrutura de repetição While, introduzir o conceito de manipulação de strings e fixar os conteúdos anteriormente apresentados
/**
* Curso de Programação JAVA
*
* Exercício 14- Calculadora 2
*
* @author Prof. Eric Loque M. Xavier
* @version 1.0.0
* Data 05/01/2017
*
*/
import java.io.IOException;
import java.util.*;
public class exercicio14 {
public static void main(String[] args) throws IOException{
//Declaração e inicialização das variáveis
char ch;
char operador=' ';
String x="";
String y="";
boolean primeiroAlgarismo=true;
Integer resultado = null;
System.out.println("Digite a expressão com números naturais");
/*
Lê os caracteres digitados no teclado até que
a tecla ENTER seja pressionada pelo usuário.
*/
while ((ch=(char)System.in.read()) != '\n')
{
//Rotina para separa os números
if( primeiroAlgarismo && (ch>='0') && (ch<='9') )
x=x+ch;
else if ( (ch>='0') && (ch<='9') )
y=y+ch;
//Identifica o operador a ser utilizado
switch (ch){
case '+' : operador = '+';
primeiroAlgarismo = false;
break;
case '-' : operador = '-';
primeiroAlgarismo = false;
break;
case '*' : operador = '*';
primeiroAlgarismo = false;
break;
case '/' : operador = '/';
primeiroAlgarismo = false;
break;
}
}
//Realiza a operação aritmética
switch (operador) {
case '+' : resultado = Integer.parseInt(x) + Integer.parseInt(y);
break;
case '-' : resultado = Integer.parseInt(x) - Integer.parseInt(y);
break;
case '*' : resultado = Integer.parseInt(x) * Integer.parseInt(y);
break;
case '/' : resultado = (Integer.parseInt(y)!=0) ?
Integer.parseInt(x) / Integer.parseInt(y) : null;
break;
}
//Imprime o resultado na tela
if(resultado != null)
System.out.print(x+operador+y+"="+resultado);
else
System.out.print("Operação Inválida");
}
}