aiuto Esercizio!!!!!! Clicca QUI per vedere il messaggio nel forum |
Cri |
Ciao ragazzi, qualcuno mi puo' dire dove sbaglio????
Se inserisco una stringa composta non solo di cifre e spazi il mio codice entra nel ciclo e non esce piu!!!!!!!!!! dov'e' l'errore????
grazie in anticipo
/*
Es 4.23 pag 153
Modificate l'applicazione SommaNumeriDaStringa in modo che venga all'utente di reinserire la
sequenza se essa non e' costituita esclusivamente da cifre e spazi. Per verificare se un carattere
e' un cifra decimale si puo' utilizzare il metodo statico isDigit della classe java.lang.Character:
- public static boolean isDigit(char ch)
*/
import prog.io.*;
import java.util.StringTokenizer;
class Es4_23
{
public static void main(String[] args)
{
//predisposizione dei canali di comunicazione
ConsoleInputManager in = new ConsoleInputManager();
ConsoleOutputManager out = new ConsoleOutputManager();
//lettura della sequenza
//String sequenza = in.readLine("Inserisci una sequenza di numeri interi separati da spazi: ");
boolean continua = false;
String sequenza = "";
do
{
sequenza = in.readLine("Inserisci una sequenza d numeri: ");
for (int i = 0 ; i < sequenza.length(); i++)
{
char c = sequenza.charAt(i);
if(!Character.isDigit(c) && c != ' ')
{
out.println("ripeti stringa ");
continua = true;
break;
}
}
} while(continua);
//costruzione dell'estrattore di token
StringTokenizer stk = new StringTokenizer(sequenza, " ");
int somma = 0;
while (stk.hasMoreTokens())
{
String token = stk.nextToken();
somma = somma + Integer.parseInt(token);
}
//comunicazione del risultato
out.println("La somma dei numeri nella sequenza e' : " + somma);
}
} |
CowBoy |
entra nel ciclo e non esce più... dov'è l'errore?! La risposta è sottintesa, mancava l'else:
sostituisci il ciclo do-while con questo:
code:
do
{
sequenza = in.readLine("Inserisci una sequenza di numeri: ");
for (int i = 0 ; i < sequenza.length(); i++)
{
char c = sequenza.charAt(i);
if(!Character.isDigit(c) && c != ' ')
{
out.println("ripeti stringa ");
continua = true;
break;
}
else
{
continua = false;
}
}
} while(continua);
|
Cri |
che stupida!!!
grazie mille!!!! |
|
|
|