Pętle warunkowe - przyrownywanie stringów

0

Cześć, niedawno zacząłem uczyć się JS'a. Z racji tego, że jestem nadal początkującym , czy mógłby mi ktoś wytłumaczyć czemu poniższy kod działa w ten sposób? Czemu pierwsze dwa console logi działają przy includach, a ostatni zawsze wyrzuca returna z ostatniego elsa?

function wypisz(imie, miesiac){
    if(["grudzien", "styczne", "luty"].includes(miesiac) ){
       return `${imie} jezdzi na sankach`;
    }
    else if(["marzec", "kwiecien", "maj"].includes(miesiac)){
        return `${imie} chodzi po kałużach`;
    }
    else if(miesiac === "czerwiec" && miesiac === "lipiec" && miesiac ==="sierpien"){
        return `${imie} się opala`;
    }
    else if(miesiac === "wrzesien" && miesiac === "pazdziernik" && miesiac ==="listopad"){
       return `${imie} zbiera liście`;
    }else {
       return `${imie} uczy się JS`;
    }
}

console.log(wypisz("Adrian", "grudzien"));
console.log(wypisz("Adrian", "marzec"));
console.log(wypisz("Adrian", "wrzesien"));
3

Nie jestem pewien czy dobrze rozumiem ale && to operator AND tzn że żeby if się wykonał wszystkie warunki muszą być true, tobie chodziło raczej o || - operator OR
to znaczy ze tylko jeden warunek musi być true.

1 użytkowników online, w tym zalogowanych: 0, gości: 1