NoTrace Security Forum

NoTrace Security Forum
Home | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Utenti | Download | cerca | faq | RSS | Security Chat
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 Off-Topic
 Altre Discussioni
 problema programmazione java
 Forum Bloccato
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
I seguenti utenti stanno leggendo questo Forum Qui c'è:
Autore Discussione Precedente Discussione Discussione Successiva  

lodrago
Senior Member




153 Messaggi


Inserito il - 19/12/2008 : 20:14:02  Mostra Profilo
salve a tutti,
non avendo trovato una sezione dove esporre il mio problema ho scritto qui.
allora sono alle prime armi con l'utilizzo di java.
il prof. ci ha assegnato un'esercizio, l'ho svolto solo che eclipse quando devo visualizzare una varibile contenente un testo(dichiarata int citta1;) quando scrivo:
System.out.println("la citta maggiormete popolata è:" +citta1); li mi da l'errore che dice:
The local variable citta3 may not have been initialized

cosa devo fare per farla visualizzare^? grazie mille se non vi è chiaro scrivete pure.

ori
Moderatore


Città: Verona


2043 Messaggi

Inserito il - 19/12/2008 : 21:15:05  Mostra Profilo
Il compilatore ti segnala che tra il punto in cui dichiari citta1 e dove la usi nella println, non e` garantito che tale a variabile venga assegnato un valore (ad esempio, hai un ramo di un if che assegna un valore mentre l'altro no).

Soluzione: controllare di non aver dimenticato qualche assegnamento nei vari rami degli if (o dei cicli for/while) oppure, quando dichiari citta1, assegni anche un valore (ad esempio, null o la prima citta` dell'elenco, vista la stringa che mandi in output).
Torna all'inizio della Pagina

lodrago
Senior Member




153 Messaggi

Inserito il - 19/12/2008 : 22:02:17  Mostra Profilo
Giusto!!! io all'if non ho utilizzato quella variabile ma delle altre che servivano per compilare una condizione e nell'istruzione ho inserito la variabile del nome della città.
scusami ma non ho capito la soluzione...
Io ho chiesto in input di compilare la variabile.
potresti essere più chiaro, non ho capito cosa devo fare per risolvere il problema
PS scusa la mia ignoranza grazie mille

Modificato da - lodrago in data 19/12/2008 22:05:14
Torna all'inizio della Pagina

ori
Moderatore


Città: Verona


2043 Messaggi

Inserito il - 20/12/2008 : 20:52:04  Mostra Profilo
La situazione e` la seguente: java prevede che prima di usare il valore di una variabile, a questa deve essere stato assegnato un valore.

Se questo non accade, ti viene riportato un messaggio d'errore in fase di compilazione.

Il modo piu` semplice per ovviare a questo problema e` sostituire l'istruzione
String citta1;
con l'istruzione
String citta1 = null;


Torna all'inizio della Pagina

lodrago
Senior Member




153 Messaggi

Inserito il - 21/12/2008 : 23:16:52  Mostra Profilo
scusa ho provato ma niente. posso postarti il codice del programma e vedi personalmente dov'è l'errore da me commesso?
Torna all'inizio della Pagina

ori
Moderatore


Città: Verona


2043 Messaggi

Inserito il - 22/12/2008 : 09:19:55  Mostra Profilo
Se non e` troppo lungo, posta pure... Altrimenti segui lo stesso procedimento dei log.
Torna all'inizio della Pagina

lodrago
Senior Member




153 Messaggi

Inserito il - 22/12/2008 : 10:45:18  Mostra Profilo
ok grazie.

htt*://freefilehosting.net/download/4380a
l'errore è alla fine, le parole evidenziate in rosso.

grazie 1000
Torna all'inizio della Pagina

ori
Moderatore


Città: Verona


2043 Messaggi

Inserito il - 22/12/2008 : 11:01:57  Mostra Profilo
Ci sono molte cose che non vanno...

Andiamo con ordine:
- dichiari 5 variabili citta1, ..., citta5 di tipo intero, non le inizializzi ma le usi nei println
- ti fai dare dall'utente il nome delle varie citta` ma lo sovrascrivi con quello successivo... che non usi
- esegui piu` volte l'operazione Double.valueOf(legginumero).doubleValue() che non e` l'ottimale
- numAbitantiX sono dichiarate come Double. C'e` un motivo per usare double e non int?
- il tuo programma non e` versatile (ma dipende dalle specifiche ricevute e da quanto conosci di java): potresti renderlo compatibile con un qualsiasi numero di citta`.

Senza sapere bene le specifiche, io farei cosi`:
- le variabili citta1, ..., citta5 le trasformi da int a String e rimpiazzi lettocitta=tastiera.readLine(); con cittaX=tastiera.readLine(); dove al posto di X metti il numero giusto
- rimpiazzi Double.valueOf(legginumero).doubleValue() con Double.parseDouble(legginumero)

Per rendere il programma compatibile con qualsiasi numero di citta`, usi array, cicli for di caricamento e analisi dei dati. Il tutto dimensionato dopo aver chiesto all'utente quante citta` servono.
Torna all'inizio della Pagina

lodrago
Senior Member




153 Messaggi

Inserito il - 23/12/2008 : 10:42:08  Mostra Profilo
grazie 1000, ori

ho seguito i tuoi suggerimenti, il programma funziona e come hai detto, ho tilizzato l'array che lo rende migliore.

grazie del tempo dedicatomi e buone feste!
Arrivederci.
Torna all'inizio della Pagina

ori
Moderatore


Città: Verona


2043 Messaggi

Inserito il - 23/12/2008 : 11:29:49  Mostra Profilo
Mi faresti vedere il codice che hai ora?

Ciao e buone feste anche a te
Torna all'inizio della Pagina
  Discussione Precedente Discussione Discussione Successiva  

 Forum Bloccato
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
Vai a:
NoTrace Security Forum
© Nazzareno Schettino
RSS NEWS
Torna all'inizio della Pagina
Pagina generata in 0,17 secondi. TargatoNA | SuperDeeJay | Snitz Forums 2000