Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Didattica > Corsi N - Z > Programmazione
 
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!!!!

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate