为什么我的js代码只有一行?

时间:2016-09-17 07:34:24

标签: javascript

这是我的代码,输出让我困惑。

var count = 0;
function cc(card) {
  switch (card){
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
      count ++;
      break;
    case 7:
    case 8:
    case 9:
      break;
    case 10:
    case 'J':
    case 'Q':
    case 'K':
    case 'A':
      count --;
      break;
  }
  if (count >0){
    return count+" "+"Bet";
  }
  else{
    return count+" "+"Hold";
  }
}
cc(2);cc(3);

导致"2 Bet",为什么输出不是
"1 Bet"
"2 Bet"
在我看来,cc(2);导致"1 Bet",而cc(3);导致cc(2);导致另一个"2 Bet",因此结果很明显输出中有两行<登记/> "1 Bet"
"2 Bet"

为什么js代码只有一行结果?
"2 Bet"

2 个答案:

答案 0 :(得分:4)

因为正在显示您的程序的结果,并且它是您执行的最后一次调用的结果,即cc(3),并导致:“2 Bet”。

您无论如何都不打印或输出调用cc(2)的结果。

答案 1 :(得分:3)

您只是不打印结果。您只是看到最后一个函数的输出,因为您可能正在浏览器控制台中运行它。

如果您记录每个结果,您可以看到代码符合您的预期。

var count = 0;

function cc(card) {
  switch (card) {
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
      count++;
      break;
    case 7:
    case 8:
    case 9:
      break;
    case 10:
    case 'J':
    case 'Q':
    case 'K':
    case 'A':
      count--;
      break;
  }
  if (count > 0) {
    return count + " " + "Bet";
  } else {
    return count + " " + "Hold";
  }
}
console.log(cc(2)); // 1 Bet
console.log(cc(3)); // 2 Bet