Ciao ho un problema con la classe Stringtokenizer; devo costruire una classe Blocchi che pone uno sull'altro
dei blocchi cubici della stessa dimensione
Il problema è da main:devo leggere da standard input una sequenzacodice:class Torri{ String nome; int blocchi; /**- un costruttore che costruisce una torre di cui viene specificato il nome e il numero di blocchi. - un costruttore che costruisce una torre di cui viene specificato il nome e non contiene blocchi. */ Torri(String nome,int numblocchi){ this.nome=nome; this.blocchi=numblocchi; } Torri(String nome){ this(nome,0); } /**aggiungi(n) Aggiunge alla torre n blocchi*/ public int aggiungi(int nblocchi){ blocchi+=nblocchi; return blocchi; } /**togli(n) Toglie dalla torre n blocchi. Se la torre ha meno di n blocchi, vengono tolti tutti i blocchi.*/ public void togli(int nblocchi){ blocchi-=nblocchi; if(blocchi<nblocchi){ blocchi=0; }else blocchi-=nblocchi; } /**somma(t) Restituisce la torre ottenuta sommando alla torre che esegue il metodo la torre t specificata dall'argomento.*/ public int somma(Torri t){ int somma=0; somma+=blocchi+t.blocchi; return somma; } /**toString() Restituisce una stringa della forma "nome_torre: numero_blocchi" Ad esempio, se la torre ha nome "alfa" e contiene 5 blocchi, restituisce la stringa "alfa: 5" */ public String toString(){ String s=""; s+=nome+": "+blocchi; return s; } }
di linee. Ciascuna linea puo' contenere uno o piu' elementi separati da uno spazio.Le operazioni associate all'input sono le seguenti.
1) La linea di input ha la forma
N nome n
Viene costruita una nuova torre avente il nome specificato e composta da n blocchi
(si assume n >= 0).
Ad esempio, se la linea e'
N alfa 5
dovra' essere costruita una nuova torre di nome "alfa" avente 5 blocchi.
2) La linea di input ha la forma
A n
Vengono aggiunti all'ultima torre creata al punto 1 n blocchi
(usare metodo aggiungi).
Ad esempio,
A 3
significa aggiungere 3 blocchi alla torre.
Il problema è dal main;infatti il programma mi compila tutto correttamente ma non mi stampa niente...perchè?codice:import java.util.*; class ProvaBlocchi{ public static void main(String [] args){ Scanner sc=new Scanner(System.in); String y=sc.nextLine(); StringTokenizer st=new StringTokenizer(y," "); while(st.hasMoreTokens()){ String s=st.nextToken(); String i=st.nextToken(); int num=Integer.valueOf(st.nextToken()); Torri t=new Torri(i,num); int somm=0; if(s.equals("A")){ int num1=Integer.valueOf(st.nextToken()); int q=t.aggiungi(num1); Torri t1=new Torri(i,q); somm+=t.somma(t1); System.out.println(somm); } y=sc.nextLine(); } } }![]()

Rispondi quotando
