webForumDet fria alternativet

konstig if-sats

Java

6 svar · 261 visningar · startad av jme

Medlem sedan maj 20012 237 inlägg
Frågan#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 ;)

255 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)