2013-12-05 3 views
1

В инструкции switch я хочу, чтобы пользователь не вводил число. Я получаю сообщение об ошибке с этим: «дело IsNaN (пользователь):»Switch Test, если isNan

var user = prompt("Hey! What do you like?","").toLowerCase(); 
switch(user){ 
    case "": 
    console.log("Can\'t be blank!"); 
    break; 
    case !isNaN(user): 
    console.log("Can\'t be a number"); 
    break; 
    case "food": 
    console.log("Food does a body good...sometimes"); 
    break; 
    default: 
    console.log("Mmm....Can\'t Make heads or tales of this one."); 
} 

Я тоже пытался, но не работает:

switch(!isNaN(user)){ 
    case true: 
    console.log("Hey! Can\'t be a number!"); 
    break; 

я могу получить IsNaN работать в другой если, но не в коммутаторе.

var user = prompt("Hey! What do you like?","").toLowerCase(); 
    if(!isNaN(user)){ 
     console.log("Can\'t be a Number!"); 
    } 
+0

На каком языке вы используете? –

+0

JavaScript - это язык – ryanjohnsond

ответ

2

switch оператор сравнения вашего user переменной в каждом конкретном случае. поэтому он должен быть прочитан как

  • does user == "". Да? do stuff
  • пользователь == "еда". Да? делать вещи
  • иначе, делать вещи

когда вы читаете тематическое заявление, как это, вы поймете, почему ваш случай NaN не работает

  • делает пользователь == IsNaN (пользователь) < - никогда не будет истинным

Ваш окончательный код так, как вам нужно сделать, это

var user = prompt("Hey! What do you like?","").toLowerCase(); 
if(!isNaN(user)){ 
    console.log("Can\'t be a Number!"); 
} 
+0

хорошие подсказки! Но как вы это делаете в коммутаторе? он работает для окончательного кода: IF/IF ELSE, но есть ли эквивалент для SWITCH ?. – ryanjohnsond

+2

@ryanjohnsond На самом деле вы цель - скрещивать кошку с собакой. – leaf

+0

Вы не можете проверить, является ли ввод приглашения номером? – ryanjohnsond

Смежные вопросы