RISOLTO java: if != e if ==

Pubblicità
Stato
Discussione chiusa ad ulteriori risposte.

petrusic

Utente Attivo
Messaggi
229
Reazioni
20
Punteggio
46
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?
 
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
 
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 !=) --
 
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.
Pubblicità
Pubblicità
Indietro
Top