这是我的代码,输出让我困惑。
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"
答案 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