/* Lab05cin.java (c) 2007 adolfo@di-mare.com */ /** @(#)Lab05cin.java 2007 Calculadora simple que también lee del teclado. @author Adolfo Di Mare */ import java.io.*; // Clases para leer desde el teclado /** Clase que contiene el programa principal {@code main()}. */ public class Lab05cin { /** Programa principal. * - OJO: tira la excepción IOException cuando CIN no funciona. */ public static void main( String args[] ) throws IOException { String str; // hilera leída del teclado BufferedReader CIN = new BufferedReader( new InputStreamReader(System.in) ); long r, // valor temporal recién leido acum; // valor total acumulado por la calculadora char op; // operación a efectuar con el siguiente número leido // pone en cero el valor inicial del acumulador acum = 0; // Pide el primero operador de la calculadora System.out.print( (acum) + " > " ); op = (char)CIN.read(); // lee el operador // Ciclo para efectuar todos los cálculos while (op != '.') { // lee el valor a acumular char ignore = (char)CIN.read(); // se salta el espacio en blanco str = CIN.readLine(); // lee todo el reglón que contien el número r = Integer.parseInt( str ); // convierte la hilera a valor numérico // selecciona la operación "op" a efectuar (sale con '.') switch (op) { case '+': acum += r; break; case '-': acum = acum - r; break; case '*': acum *= r; break; case '/': acum = acum / r; break; default: // operador inválido System.out.print( "\n(" + (op) + ")==> Operación inválida\n" ); } // pide el siguiente operador a efectuar System.out.print( (acum) + " > "); op = (char)CIN.read(); // lee el operador } // mensaje final antes de terminar la ejecución System.out.print( "Acumulador final: " + (acum) ); CIN.close(); // Cierra la consola de lectura return; } // main() /** Constructor por defecto. * {@code private} previene que la clase sea instanciada. */ private Lab05cin() { super(); } } // Lab05cin /* EOF: Lab05cin.java */