Aquí está mi código. He verificado con documentos en línea y no pude encontrar ninguna razón para que esto no funcione.
let marks = 90; switch (marks) { case 1: if (marks <= 100 && marks >= 80) { console.log("Very Good"); } break; case 2: if (marks >= 60 && marks <= 79) { console.log("Good"); } break; case 3: if (marks >= 30 && marks <= 59) { console.log("Can do better"); } break; case 4: if (marks < 30) { console.log("Fail"); } break; }let marks = 90; switch (marks<=100) { case marks <= 100 && marks>=80: console.log("Very Good"); break case ( marks >=60 && marks <= 79) : console.log("Good") break; case (marks >= 30 && marks <=59): console.log("Can do better"); break; case (marks < 30) : console.log("Fail"); break; }Esto debería funcionar, sus casos de cambio no tienen sentido