Java állásinterjún kaptam egy feladatot, aminek szerintem nincs megoldása, szerintetek?
Az volt a feladat hogy adjuk meg a ciklusváltozók értékeit úgy, hogy végtelen ciklus legyen.
While(s<=t && s>=t && s!=t){
...
...
}
Van megoldása. Ezt a feladatot én is fel szoktam adni interjún. :)
Gondolatindítók:
- <> relációt milyen típus[ok]ra lehet használni?
- az első 2 feltétel igazságából következik, hogy a 2 érték megegyezik
- a harmadik feltétel viszont ennek ellenkezőjét állítja
- mikor van az, hogy 2 érték egyezik, de az == operátor hamist ad? (ld. string-eket is equals-al hasonlítunk, ugyanezért)
#3: Primitív típusokra az == is kiadja az egyenlőséget:
#1: Hogy gondoltad pontosan a NaN-nal? azt bármivel hasonlítod, nem lesz se kisebb, se nagyobb, se egyenlő
Amúgy pl new Integer(0)
Két darab, 127-nél nagyobb Integer a megoldás, ott ugyanis == és != a referenciát hasonlítja össze (és 127 felett nem lesz azonos a két példány, viszont 127 alatt belefuthatsz interned példányba), >= és <= viszont az értéket unboxinggal.
Egyébként az ilyen interjúfeladatnak a szopatáson kívül nem sok haszna van...
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!