• User

    Stream Java (piccolo chiarimento)

    Riporto il codice per creare una semplice calcolatrice che faccia somme, sottrazioni, moltiplicazini e divisioni.

    [PHP]import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.util.Scanner;

    public class Calcolatrice {

    public static void main(String[] args){
    
        char xxx;
        String operatore;
        double a,b,risultato;
    
        //BufferedReader in2 = new BufferedReader(new InputStreamReader(System.in));
        Scanner in = new Scanner(System.in);
    
        System.out.println("Primo operando?"); a=in.nextInt();
        Console.scriviStringa("Secondo operando?"); b=in.nextInt();
        System.out.println("Operatore?"); operatore=in.next();
        xxx = operatore.charAt(0);
        
            switch(xxx){
                case '+': {risultato=a+b; Console.scriviStringa("Risultato"); Console.scriviReale(risultato); break;}
                case '-': {risultato=a-b; Console.scriviStringa("Risultato"); Console.scriviReale(risultato); break;}
                case '*': {risultato=a*b; Console.scriviStringa("Risultato"); Console.scriviReale(risultato); break;}
                case '/': {risultato=a/b; Console.scriviStringa("Risultato"); Console.scriviReale(risultato); break;}
                default: Console.scriviStringa("Operatore non valido!"); break;
        }
    }
    

    }[/PHP]

    Le mie banali (ma non per me) domande:

    1. Perchè se uso "BufferedReader" al posto di "Scanner" non ho la possibilità di inserire il secondo operando ottenendo subito la domanda dell'operatore?
    2. Perchè se uso "BufferedReader" devo usare un blocco try/catch per le eccezioni mentre con "Scanner" no?

    Grazie 1000 per l'aiuto.


  • User

    Scusate......... mi sono accorto solo ora di ciò che ho postato...... :tongueout:
    Metto il codice corretto visto che non è possibile editare i post già scritti:

    [PHP]import java.util.Scanner;

    public class Calcolatrice{

    public static void main(String[] args){
    
        char xxx;
        String operatore;
        double a,b,risultato;
    
        //BufferedReader in2 = new BufferedReader(new InputStreamReader(System.in));        //CON QUESTO NON VA: NON SI PUO' INSERIRE IL SECONDO OPERANDO
        Scanner in = new Scanner(System.in);
    
        System.out.println("Primo operando?"); a=in.nextInt();
        System.out.println("Secondo operando?"); b=in.nextInt();
        System.out.println("Operatore?"); operatore=in.next();
        xxx = operatore.charAt(0);
        
            switch(xxx){
                case '+': {risultato=a+b; System.out.println("Risultato"); System.out.println(risultato); break;}
                case '-': {risultato=a-b; System.out.println("Risultato"); System.out.println(risultato); break;}
                case '*': {risultato=a*b; System.out.println("Risultato"); System.out.println(risultato); break;}
                case '/': {risultato=a/b; System.out.println("Risultato"); System.out.println(risultato); break;}
                default: System.out.println("Operatore non valido!"); break;
        }
    }
    

    }[/PHP]

    Le domande che volevo porvi sono le solite.......
    Grazie ancora.