webForumDet fria alternativet

konstig if-sats

6 svar · 261 visningar · startad av jme

jmeMedlem sedan maj 20012 237 inlägg
#1

Jag fattar inte...

        String word = "kjk";
        
        String description = null;
        
        if(word == null || description == null) // #1
        {
            System.out.println("1");
        }
        else // #2
        {
            System.out.println("2");
        }

Ovanstående kod fungerar bra.

I en annan kod så har jag samma if-sats och får följande resultat:

word = null, description = null: #1
word = "jjj", description=null: #2 <--- varför #2? description ä ju null
word = null, description = "dd": #1

Nånting spökar. När man kör med or så borde ju i detta fall båda delarna testas.

EDIT: rättade det som yohpops menade...

yohpopsMedlem sedan feb. 20011 198 inlägg
#2

description = dictionary?

jmeMedlem sedan maj 20012 237 inlägg
#3

japp

yohpopsMedlem sedan feb. 20011 198 inlägg
#4

Är koden exakt samma då?
Posta ifsatsen också..

jmeMedlem sedan maj 20012 237 inlägg
#5

if-satsen är samma som i första inlägget...

yohpopsMedlem sedan feb. 20011 198 inlägg
#6

Lägg till detta under System.out.println("1"); så får du mer info.

System.out.println("("+ word +" == null || "+ description +" == null): "+ (word == null || description == null));
jmeMedlem sedan maj 20012 237 inlägg
#7

Nu tror jag att jag vet vad det är.

description är "null" och inte null. Men då jag skriver ut innehållet så står det null. Äh. Varför fattade jag inte det tidigare...

Japp, testade med description length() och det blir 4 ;)

128 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)