ragazzi, questo è un esercizio anche stupido ma non capisco dove sta l'errore.
devo valutare le espressioni senza considerare le priorità delle parentesi.
fa tutto, esce e funziona...tranne quando digito "."
quando digito "." invece dell'espressione dovrebbe uscire dal programma ma a me da un errore:
ecco il codice:
codice:package string;import java.util.*; public class EspressioneAritmeticaSenzaPriorita { public static void main(String[]args){ String espr=null; if(args.length==1){ espr=args[0]; } else{ Scanner sc=new Scanner(System.in); System.out.println("Espr>"); espr=sc.nextLine(); if(espr=="."){ System.out.println("no"); System.exit(-1);} } StringTokenizer st=new StringTokenizer(espr, "+-*/",true); int risfin=valuta(st); System.out.println(espr+"="+risfin); } public static int valuta(StringTokenizer st){ int ris=Integer.parseInt(st.nextToken()); while(st.hasMoreTokens()){ char op=st.nextToken().charAt(0); //ottiene operatore int num=Integer.parseInt(st.nextToken()); switch(op){ case '+': ris=ris+num; break; case '-': ris=ris-num; break; case '*': ris=ris*num; break; default: ris=ris/num; //che sarebbe case '/' } } return ris; } }