2012-06-22 3 views
6

У меня есть оператор switch switch, который не работает. Я проверил ввод, это действительно. Если пользователь равен 1, он переходит в значение по умолчанию. Если пользователем является любой номер, он по умолчанию. Что здесь не так? Я вообще не знаю javascript.JS переключатель кейс не работает

switch (user) { 
case 1: 
    // stuff 
    break; 
case 2: 
    // more stuff 
    break; 
default: 
    // this gets called 
    break; 
} 
+1

Что содержит переменная 'user'? «Объект» или «int»? – user278064

+0

Вот почему я предпочитаю сильную типизацию :) –

+0

Крис, попробуйте 'switch (~~ user)' – KingRider

ответ

16

Убедитесь, что вы не смешиваете строки и целые числа.
Try:

switch (user) { 
    case "1": 
     // stuff 
     break; 
    case "2": 
     // more stuff 
     break; 
    default: 
     // this gets called 
} 
+0

'default' не нужно' break' – KingRider

10

Проблема: несоответствие типа данных. литой тип пользователь на целое число.

+0

Как? Я думал, что все, что вы делаете в js, это var – Chris

4

Cast тип переменной пользователя в целое

switch (+user) { 
    case 1: .. // 
} 
2

Javascript является типа известно. Итак, «1» не совпадает с 1. В вашем случае «пользователь» должен быть числовым, а не строкой. Вы можете сделать это просто:

user = Number(user) 
Смежные вопросы