Имя: Пароль:
IT
Веб-мастеринг
Подскажите по JavaScript: switch case
0 Брудвар
 
25.09.17
19:00
Решил начать изучать жавускрипт. Сейчас учу switch. Не могу понять логику этого глупого языка программирования. Вот вроде правильно написал, но не работает. Два раза проверял в отладчике, в переменной "а" действительно 20.

a = 20
        switch (true) {
            case (a >= 10):
                alert (1)
            case (a >= 20):
                alert (1)
            case (a >= 30):
                alert (1)
            case (a >= 40):
                alert (1)
            case (a >= 50):
                alert (1)
        }


Я думал что должны выполниться только первые два алерта. А выполняются вообще все.
В чем ошибка?
1 Fragster
 
гуру
25.09.17
19:01
break забыл. ну и в данном случае несколько if будет вернее.
2 Брудвар
 
25.09.17
19:04
(1) Зачем break?
3 Брудвар
 
25.09.17
19:14
Вот я тупой, проглядел ошибку! Но сам разобрался уже. Всем спаасибо. Можно закрывать тему.
4 Лефмихалыч
 
25.09.17
19:21
(0) это не язык глупый.
Свитч намеренно так устроен. Точнее, это поведение смизжено из С++
5 Лефмихалыч
 
25.09.17
19:31
+(4) это поведение позволяет сократить код, при этом, не потеряв понятность, когда надо сделать одно и то же для разных условий:

a = 20
        switch (true) {
            case (a >= 10):  
            case (a >= 20):
            case (a >= 30):  
            case (a >= 40):
            case (a >= 50):
                alert (1);
                break;
            case (a < 7):
                alert (666);

        }
6 Брудвар
 
25.09.17
19:34
(5) Точно
8 Брудвар
 
25.09.17
19:43
Что-то не вижу сообщения (7). Куда оно подевалось?
Программист всегда исправляет последнюю ошибку.