konstig if-sats

Java

6 svar · 263 visningar · startad av jme

Medlem sedan maj 20012 237 inlägg
Trådstart#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...

Medlem sedan feb. 20011 198 inlägg
#2

description = dictionary?

Medlem sedan maj 20012 237 inlägg
#3

japp

Medlem sedan feb. 20011 198 inlägg
#4

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

Medlem sedan maj 20012 237 inlägg
#5

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

Medlem 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));
Medlem 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 ;)

292 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
147 ms — deklarationer (db)
0 ms — hämta statistik (cache)
142 ms — hämta tråd, inlägg och bilagor (db)
138 ms — ändringar (db)