A feltételes kód logikája úgy működik, hogy egészen addig sorban halad végig a kódon, amíg nem talál egy olyan ágat, amelybe belemehet (az első teljesülő feltétel).
Ebben az esetben 15-nél például már rögtön a hárommal oszthatóság teljesül, ezért ott "véget is ér" a kód.
Ha szeretnéd a mindkettővel osztható számokat megkülönböztetni, akkor kell egy külön feltételes ágat írnod, ahol ezt az esetet vizsgálod. És ennek a feltételvizsgálatnak kell a többi előtt lenni a fent leírtak miatt.
if (szam % 3 === 0 && szam % 5 === 0) {
// mindkettővel osztható
} else if (szam % 3 === 0) {
// csak 3-mal osztható
} else if (szam % 5 === 0) {
// csak 5-tel osztható
}