在while循环中切换语句

时间:2017-03-31 03:48:47

标签: javascript loops break

我有一个应该像收银机一样的功能。只要更改大于0,就可以扣除资金。但是,我认为循环或switch语句没有正常工作,因为值没有被扣除并返回到我的变量或数组。当我查看我的数组时,应该扣除该值。

代码:

function checkCashRegister(price, cash, cid) {
  var change = cash - price;
  var message = "";
  var isBoolean = true;
  var cashInReg = cid;

  while(isBoolean) {
    switch (change) {
        case change -100 > 0:
          change-= 100;
          cashInReg[8][1]-= 100;
          break;
        case change -20 > 0:
          break;
        case change -10 > 0:
          break;
        case change -5 > 0:
          break;
        case change -1 > 0:
          break;
        case change -0.25 > 0:
          break;
        case change -0.10 > 0:
          break;
        case change -0.05 > 0:
          break;
        case change -0.01 > 0:
          break;
        case change === 0:
          isBoolean = false;
          break;
        case change < 0:
          message = "Insufficient Funds";
          isBoolean = false;
          break;
      default:
          message = "hi";
    }
  }

  return cashInReg;
}



checkCashRegister(100,500.00, [["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.10], ["QUARTER", 4.25], ["ONE", 90.00], ["FIVE", 55.00], ["TEN", 20.00], ["TWENTY", 60.00], ["ONE HUNDRED", 100.00]]);

1 个答案:

答案 0 :(得分:2)

来自MDN website

  

switch语句计算一个匹配的表达式   表达式对case子句的值,并执行语句   与此案有关。

在您的代码中,通常应将changecase构造中的值进行比较,该值恰好位于(您的代码为布尔值)中。 case change -100 > 0:

我建议你使用if else if else if ... else构造。
祝你好运。