切换语句,不执行任何情况

时间:2015-12-09 19:01:17

标签: javascript switch-statement

我正在尝试编写一个计算已经过了多少天的函数,并根据值更新变量并提醒该字符串。

我一直在"未定义"。我的switch语句是否正确?



var d = new Date();
var o = new Date(2015, 12, 7);
var todayDate = d.getDate();
var startDate = o.getDate();
var twelveDays = todayDate - startDate;

switch (twelveDays) {
  case "0":
    var calories = '10';
    break;
  case "1":
    var calories = '20';
    break;
  case "2":
    var calories = '30';
    break;
  case "3":
    var calories = '40';
    break;
  case "4":
    var calories = '50';
    break;
  case "5":
    var calories = '60';
    break;
  case "6":
    var calories = '70';
    break;
  case "7":
    var calories = '80';
    break;
  case "8":
    var calories = '90';
    break;
  case "9":
    var calories = '100';
    break;
  case "10":
    var calories = '110';
    break;
  case "11":
    var calories = '120';
    break;
  case "12":
    var calories = '130';
    break;
}

alert(calories);




View on JSFiddle

2 个答案:

答案 0 :(得分:3)

twelveDays是一个整数。在switch语句中,您正在检查字符串。没有默认子句,因此会抛出错误undefined

像这样改变:

switch (twelveDays) {
   case 0:
   var calories = '10';
   break;
case 1:
   var calories = '20';
   break;
case 2:
   var calories = '30';
   break;
}

此外,最好添加一个默认子句以防万一

答案 1 :(得分:0)

我刚刚更新了你的jsfiddle。 http://jsfiddle.net/x28a1Lhc/2/

使用switch时,添加默认案例是件好事。

var twelveDays = todayDate - startDate;返回整数。

您需要在switch中匹配整数。