Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Abbiamo provato Samsung Galaxy Tab S12 Ultra nella versione 12 GB + 256 GB con tastiera, e il risultato è un tablet che in questa configurazione si comporta come un notebook con la fluidità tipica di Android. Spessore di 5,1 mm, display Dynamic AMOLED 2X da 14,6 pollici, MediaTek Dimensity 9500 e un software senza incertezze compongono un prodotto di vertice, con prezzi da 1.539 euro, frenato solo da un'autonomia nella parte bassa del confronto
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Abbiamo provato per dieci giorni la Hyundai IONIQ 5 N, con 650 CV, 770 Nm e uno 0-100 km/h in 3,4 secondi. Il suo punto forte è N e-Shift, che simula un cambio a otto rapporti con suoni da motore termico e perfino un bang supersonico
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 11-10-2010, 10:35   #1
Oscar@
Junior Member
 
L'Avatar di Oscar@
 
Iscritto dal: Oct 2010
Messaggi: 3
[Java] istruzione If sembra non funzionare

salve a tutti,
ho un problemino con l' istruzione if di java..

nella visualizzazione dei dati volevo far apparire nel campo relativo la scritta "Si" o "NO" invece di" true" o "false" , in base al valore letto da un metodo che ritorna un valore di tipo boolean..
riporto qui un pezzo del codice:



//creazione JLabel//

if( miacamera[f].GetBagno()==true)
{JLabel etichetta6=new JLabel("SI");}
else
{JLabel etichetta6=new JLabel("NO");}

......


Mframe.getContentPane().add(etichetta5);
Mframe.getContentPane().add(etichetta6);

........

Ecco all riga :Mframe.getContentPane().add(etichetta6)
mi riporta l errore : etichetta6 cannot be resolved

da notare che le altre JLabel vengono correttamente create e visualizzate nella finestra, però sembra che non gli piaccia l istruzione IF ( che peraltro non riporta errori di sintassi ecc.)

grazie mille!
Oscar@ è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2010, 10:48   #2
astorcas
Senior Member
 
L'Avatar di astorcas
 
Iscritto dal: Jan 2005
Città: Siena
Messaggi: 1313
Quote:
Originariamente inviato da Oscar@ Guarda i messaggi
salve a tutti,
ho un problemino con l' istruzione if di java..

nella visualizzazione dei dati volevo far apparire nel campo relativo la scritta "Si" o "NO" invece di" true" o "false" , in base al valore letto da un metodo che ritorna un valore di tipo boolean..
riporto qui un pezzo del codice:



//creazione JLabel//

if( miacamera[f].GetBagno()==true)
{JLabel etichetta6=new JLabel("SI");}
else
{JLabel etichetta6=new JLabel("NO");}

......


Mframe.getContentPane().add(etichetta5);
Mframe.getContentPane().add(etichetta6);

........

Ecco all riga :Mframe.getContentPane().add(etichetta6)
mi riporta l errore : etichetta6 cannot be resolved

da notare che le altre JLabel vengono correttamente create e visualizzate nella finestra, però sembra che non gli piaccia l istruzione IF ( che peraltro non riporta errori di sintassi ecc.)

grazie mille!
Non hai ben chiaro il concetto di scope di una variabile. Non è l'if il problema. Come vedi hai dichiarato etichetta6 all'interno dell'if (fra le {}) e quindi la variabile "muore" lì. Se scrivessi una cosa tipo:

Codice:
        JLabel etichetta6=null;
        if( miacamera[f].GetBagno()==true)      	
        {etichetta6=new JLabel("SI");}
        else
        {etichetta6=new JLabel("NO");}
la variabile etichetta6 avrebbe uno scope più ampio che non è limitato all'interno dell'if. Quindi nella chiamata

Codice:
Mframe.getContentPane().add(etichetta6);
la tua etichetta rimarrebbe visibile.

Ti consiglio di fare una ricerca sullo scope delle varibili, o scoping
astorcas è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2010, 14:49   #3
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
Quote:
Originariamente inviato da astorcas Guarda i messaggi
Non hai ben chiaro il concetto di scope di una variabile. Non è l'if il problema. Come vedi hai dichiarato etichetta6 all'interno dell'if (fra le {}) e quindi la variabile "muore" lì. Se scrivessi una cosa tipo:

Codice:
        JLabel etichetta6=null;
        if( miacamera[f].GetBagno()==true)      	
        {etichetta6=new JLabel("SI");}
        else
        {etichetta6=new JLabel("NO");}
la variabile etichetta6 avrebbe uno scope più ampio che non è limitato all'interno dell'if. Quindi nella chiamata

Codice:
Mframe.getContentPane().add(etichetta6);
la tua etichetta rimarrebbe visibile.

Ti consiglio di fare una ricerca sullo scope delle varibili, o scoping
Scoping Sì sì, fai una ricerchina
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2010, 14:59   #4
astorcas
Senior Member
 
L'Avatar di astorcas
 
Iscritto dal: Jan 2005
Città: Siena
Messaggi: 1313
Quote:
Originariamente inviato da ndakota Guarda i messaggi
Scoping Sì sì, fai una ricerchina
ecco lo sapevo che dovevo risparmiare le ultime 2 parole



astorcas è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2010, 16:33   #5
Oscar@
Junior Member
 
L'Avatar di Oscar@
 
Iscritto dal: Oct 2010
Messaggi: 3
Quote:
Originariamente inviato da astorcas Guarda i messaggi
Non hai ben chiaro il concetto di scope di una variabile. Non è l'if il problema. Come vedi hai dichiarato etichetta6 all'interno dell'if (fra le {}) e quindi la variabile "muore" lì. Se scrivessi una cosa tipo:

Codice:
        JLabel etichetta6=null;
        if( miacamera[f].GetBagno()==true)      	
        {etichetta6=new JLabel("SI");}
        else
        {etichetta6=new JLabel("NO");}
la variabile etichetta6 avrebbe uno scope più ampio che non è limitato all'interno dell'if. Quindi nella chiamata

Codice:
Mframe.getContentPane().add(etichetta6);
la tua etichetta rimarrebbe visibile.

Ti consiglio di fare una ricerca sullo scope delle varibili, o scoping

ok ti ringrazio molto.. ho provato e cosi funziona!
non riesco solo a capire come mai non accetti la sintassi completa(errore riportato-> duplicate local variable) :

...
JLabel etichetta6=null;
if( miacamera[f].GetBagno()==true)
{JLabel etichetta6=new JLabel("SI");}
else
{JLabel etichetta6=new JLabel("NO");}
....

ma solo quella abbreviata come da te suggerito

nell ' if :
if( miacamera[f].GetBagno()==true)
{etichetta6=new JLabel("SI");}
else
{etichetta6=new JLabel("NO");}
Oscar@ è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2010, 16:48   #6
astorcas
Senior Member
 
L'Avatar di astorcas
 
Iscritto dal: Jan 2005
Città: Siena
Messaggi: 1313
non ho abbreviato niente, ho permesso alla variabile di avere una "vita più lunga"

cmq cerco di fartti capire con un po' di pseudocodice e commenti.
Innanzitutto sappi che una variabile esiste nello scope in cui è stata creata e in tutti gli scope "figli" (nell'esempio quelli 2 e 3)

ESEMPIO 1

Codice:
public void Metodo(){ //scope 1

JLabel label=null;  //dichiarata una variabile che essendo stata creata nello scope 1 durerà fino alla fine di tale scope;

if(qualcosa){  //scope 2
label = new JLabel("SI");
} //fine  scope 2
else{//scope 3 
label = new JLabel("NO");
}//fine scope 3

panel.add(label); //siamo in scope 1, quindi la variabile label esiste ancora)

} //Fine scope 1 (da qui in poi non esiste più label)

ESEMPIO 2

Codice:
public void Metodo(){ //scope 1

if(qualcosa){  //scope 2
JLabel label = new JLabel("SI"); //la variabile label nasce in scope 2 e muore alla fine di scope 2
} //fine  scope 2
else{//scope 3 
JLabel label = new JLabel("NO"); //la variabile label nasce in scope 3 e muore alla fine di scope 3 (e tra l'altro non ha niente a che fare con la precedente)
}//fine scope 3

panel.add(label); //siamo fuori da scope 2 o 3  e non esiste nessuna variabile label definita nello scope corrente)

} //Fine scope 1
Chiaro? O ancora più confuso?

Ultima modifica di astorcas : 11-10-2010 alle 16:50.
astorcas è offline   Rispondi citando il messaggio o parte di esso
Old 11-10-2010, 17:00   #7
Oscar@
Junior Member
 
L'Avatar di Oscar@
 
Iscritto dal: Oct 2010
Messaggi: 3
Quote:
Originariamente inviato da astorcas Guarda i messaggi
non ho abbreviato niente, ho permesso alla variabile di avere una "vita più lunga"

cmq cerco di fartti capire con un po' di pseudocodice e commenti.
Innanzitutto sappi che una variabile esiste nello scope in cui è stata creata e in tutti gli scope "figli" (nell'esempio quelli 2 e 3)

ESEMPIO 1

Codice:
public void Metodo(){ //scope 1

JLabel label=null;  //dichiarata una variabile che essendo stata creata nello scope 1 durerà fino alla fine di tale scope;

if(qualcosa){  //scope 2
label = new JLabel("SI");
} //fine  scope 2
else{//scope 3 
label = new JLabel("NO");
}//fine scope 3

panel.add(label); //siamo in scope 1, quindi la variabile label esiste ancora)

} //Fine scope 1 (da qui in poi non esiste più label)

ESEMPIO 2

Codice:
public void Metodo(){ //scope 1

if(qualcosa){  //scope 2
JLabel label = new JLabel("SI"); //la variabile label nasce in scope 2 e muore alla fine di scope 2
} //fine  scope 2
else{//scope 3 
JLabel label = new JLabel("NO"); //la variabile label nasce in scope 3 e muore alla fine di scope 3 (e tra l'altro non ha niente a che fare con la precedente)
}//fine scope 3

panel.add(label); //siamo fuori da scope 2 o 3  e non esiste nessuna variabile label definita nello scope corrente)

} //Fine scope 1
Chiaro? O ancora più confuso?

CHiaro.. il concetto di scope mi è ora + chiaro ..grazie
era solo la sintassi nel if dell istruzione :
{etichetta6=new JLabel("SI");}
invece di
{JLabel etichetta6=new JLabel("SI");}

ma forse ho capito... la variabile viene dichiarata fuori dell if
con : JLabel etichetta6=null;
e viene poi istanziata all interno dell if, senza JLabel davanti a etichetta6.


porta pazienza sono un po alle prime armi...
Oscar@ è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale CES Unveiled Milan, l'IA diventa tecnologia fond...
 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP Recensione OPPO Find X10 Pro Max: un top di gam...
Apple annuncia i nuovi MacBook Pro con s...
Warhorse Studios colpita da un grave att...
MX Master 4, arriva l'edizione speciale ...
Kali Linux 2026.3 porta la caccia alle r...
Oracle si affida a OpenAI: ChatGPT e Cod...
Kaspersky punta su IA e servizi gestiti ...
Già sfruttata la falla Brotli che...
Potrebbe essere stato scoperto un nuovo ...
Claude Code, il prompt per scovare telec...
Palit e GALAX smentiscono le voci sulla ...
Fujifilm annuncia la Instax Mini Evo 2, ...
Tailscale chiude le falle SSH verso root...
Il tuo Galaxy laggava nei giochi? Samsun...
Arrivano i nuovi Amazon Echo: prezzi da ...
Il nuovo pickup elettrico Ford può alime...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 21:59.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v