Newsgroup: it.comp.java
Titolo: istruzioni non eseguite ....

Ciao a tutti,
	     sono il solito principiante che vorrebbe sottoporre all'attenzione 
di voi tutti il seguente problema :
ho scritto la classe seguente, in breve, legge un'espressione in 
notazione postfissa e ne calcola il risultato. Il mio problema è che al 
momento non riesco a capire perchè dopo aver letto l'ultimo Token il 
ciclo while si interrompe (giustamente) ma poi non esegue le istruzioni 
di stampa a video del risultato (ammesso che siano giuste) che ci sono 
subito dopo ... mentre invece ritorna alla riga del main e si ferma li!!
Ringrazio tutti anticipatamente e mi scuso se il quesito è fin troppo 
banale ... ma del resto io non credo sia possibile imparare Java in 15 
gg. e non è quello neanche l'oggetto dell'esame !!!
ciao a presto
class Calcolatrice {
     public static void main(String argv[]) throws java.io.IOException {
       Stack stk;
       int Risultato = 0;
       String elem;
       Object Op1, Op2;
       Scanner yy = new Scanner(System.in);
       Token t;
       stk = new Stack();
       stk.clear();
     while ((t = yy.prossimoToken()) != null){
     elem = t.sorgente;
     switch (elem.hashCode()){
     case 43 :
       Op1 = stk.pop();
       Op2 = stk.pop();
       Risultato = Integer.parseInt(Op1.toString()) + 
Integer.parseInt(Op2.toString());
       stk.push(String.valueOf(Risultato));
       break;
     case 45 :
       Op1 = stk.pop();
       Op2 = stk.pop();
       Risultato = Integer.parseInt(Op2.toString()) - 
Integer.parseInt(Op1.toString());
       stk.push(String.valueOf(Risultato));
       break;
     case 42 :
       Op1 = stk.pop();
       Op2 = stk.pop();
       Risultato = Integer.parseInt(Op1.toString()) * 
Integer.parseInt(Op2.toString());
       stk.push(String.valueOf(Risultato));
       break;
     case 47 :
       Op1 = stk.pop();
       Op2 = stk.pop();
       Risultato = Integer.parseInt(Op2.toString()) / 
Integer.parseInt(Op1.toString());
       stk.push(String.valueOf(Risultato));
       break;
     default: stk.push(elem);
       break;
       }
     }
     System.out.println("Risultato: " + stk.pop());     <-----------
     stk.clear();				       <-----------
   }
}

Hello, Buterao!
You wrote  on Sat, 19 Jul 2003 16:14:16 +0200:
[Sorry, skipped] 
 B> ciclo while si interrompe (giustamente) ma poi non esegue le istruzioni 
 B> di stampa a video del risultato (ammesso che siano giuste) che ci sono 
 B> subito dopo ... mentre invece ritorna alla riga del main e si ferma li!!
[Sorry, skipped] 
 B> class Calcolatrice {
 B> 
 B>        Stack stk;
[Sorry, skipped] 
 B> 
 
visto che hai dichiarato:
 B>      public static void main(String argv[]) throws java.io.IOException {
non è che all'istruzione incriminata si genera un eccezione?
prova con 
B>      public static void main(String argv[]) {
...
try {
 B>      System.out.println("Risultato: " + stk.pop());     
 B>      stk.clear();           
 } catch (java.io.IOException  e) {
System.out.println("Errore IO:"+e.toString());
}
Mauro
--
"Non vorrei mai far parte di un club dove accettassero gente come me!! " - Woody Allen "Io e Annie"

 
Veramente la battuta è di Groucho Marx... ;)
Marco

Hello, cthulhu!
You wrote  on Wed, 23 Jul 2003 09:29:50 +0200:
 ??>> --
 ??>> "Non vorrei mai far parte di un club dove accettassero gente come me!!
 ??>> " - Woody Allen "Io e Annie" 
 c> 
 c> Veramente la battuta è di Groucho Marx... ;)
 c> 
 c> Marco
ho fatto una piccola ricerca, e google mi risponde con "Io e Annie"
Mauro
--
Esmeralda Villabos: "Come ti chiami?"  Butch: "Butch"  Esmeralda Villabos: "E che cosa significa?"  Butch: "Sono americano, dolcezza, i nostri nomi non vogliono dire un cazzo." - "Pulp Fiction"


http://www.quotationspage.com/quotes/Groucho_Marx
I sent the club a wire stating, PLEASE ACCEPT MY RESIGNATION. I DON'T 
WANT TO BELONG TO ANY CLUB THAT WILL ACCEPT ME AS A MEMBER.
Ciau
Marco