RISOLTO java: if != e if ==

Stato
Discussione chiusa ad ulteriori risposte.

petrusic

Utente Attivo
227
20
CPU
AMD Athlon - X86_64
Scheda Madre
Acer RS780HVF
HDD
SSD PLUS da 240GB (ospita 3 S.O Linux), WDC WD10EFRX-68F da 1000GB (ospita solo archivi dati)
RAM
n.2 DDR" per 2GB
OS
fedora 28 Mate, Ubuntu Mate, Linux Mint 19
Durante la prova di un mio programmino, mi sono trovato di fronte ad un comportamento inaspettato del seguente gruppo di istruzioni :
Codice:
while(rs.next()) {
                    scart = false;
                    coVo = rs.getInt("NumVoce");
                    if ((coVo % 1000) != zero); {
                        for(i = 0; i < 6; i++) {
                              ---bla ---bla ---
                        }
                        ---bla ---bla ---
                    }
              }
al primo passaggio la variabile 'coVo' contiene '0'. Ebbene, per me inaspettatamante, l'istruzione successiva è diventata "for...", mentre secondo me avrebbe dovuto essere "while ..."

se, però, scrivo:
Codice:
while(rs.next()) {
                    scart = false;
                    coVo = rs.getInt("NumVoce");
                    if ((coVo % 1000) == zero); {
                    }
                   else {
                        for(i = 0; i < 6; i++) {
                              ---bla ---bla ---
                        }
                        ---bla ---bla ---
                    }
              }
allora l'istruzione successiva diventa correttamente "while ..."

Che significa?
 

BAT

Moderatore
Staff Forum
Utente Èlite
22,668
11,452
CPU
1-Neurone
Dissipatore
Ventaglio
RAM
Scarsa
Net
Segnali di fumo
OS
Windows 10000 BUG
Che significa la variabile zero? sei sicuro che la variabile zero contenga l'intero 0?
e comunque sei proprio sicuro che coVo sia veramente 0? mettici un'istruzione di stampa
 

petrusic

Utente Attivo
227
20
CPU
AMD Athlon - X86_64
Scheda Madre
Acer RS780HVF
HDD
SSD PLUS da 240GB (ospita 3 S.O Linux), WDC WD10EFRX-68F da 1000GB (ospita solo archivi dati)
RAM
n.2 DDR" per 2GB
OS
fedora 28 Mate, Ubuntu Mate, Linux Mint 19
Che significa la variabile zero? sei sicuro che la variabile zero contenga l'intero 0?
e comunque sei proprio sicuro che coVo sia veramente 0? mettici un'istruzione di stampa
Variabile zero?
:cav: Hai ragione. Ho sbagliato a riportare il codice. La variabile zero è nata durante una delle mie diverse prove proprio per fare un distinguo pratico fra '0' e 'zero = 0'
Comunque, ho trovato l'errore: è il ';' che ho scritto distrattamente alla fine della riga della if e prima della '{'.
Infatti ho riprovato dopo avere apportato la correzione e l'esecuzione ora è corretta.
java NON segnala detto tipo di errore.
coVo= 100000000-- prima della if --
coVo= 100000000-- dopo la if (ramo ==) --
coVo= 101000000-- prima della if --
coVo= 101000000-- dopo la if (ramo ==) --
coVo= 101001000-- prima della if --
coVo= 101001000-- dopo la if (ramo ==) --
coVo= 101001001-- prima della if --
coVo= 101001001-- dopo la if (ramo !=) --
 

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,210
1,845
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
Non so se hai riportato male il codice, ma c'è un "punto e virgola" prima della parentesi giraffa di apertura dell'if.

EDIT: qualche secondo di ritardo... :D
Comunque non è un errore, è perfettamente lecito avere un if senza graffe. Se non c'è nulla, non verrà eseguito nulla.
 
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili