我在浏览器中使用简单的HTML文档测试了以下代码,以获得类似的输出
50 > EVEN NUMBER .
75 > ODD NUMBER .
JavaScript对话框中的-1 > INVALID NUMBER .
。
但是,我只看到最后一个而不是3个单独的对话框。我很想知道为什么会发生这样的事情。
function isEven(X) {
var number = X;
var sol = (function find(number) {
if(number === 0) {
return 'Even';
} else if(number === 1) {
return 'Odd';
} else if(number > 1) {
find(number-2);
} else if(number < 0) {
return 'Invalid';
}
}(number));
switch(sol) {
case 'Even':
alert(number+' is an '+'EVEN NUMBER .');
break;
case 'Odd':
alert(number+' is an '+'ODD NUMBER .');
break;
case 'Invalid':
alert(number+' is an '+'INVALID NUMBER .');
break;
}
}
isEven(50);
isEven(75);
isEven(-1);
答案 0 :(得分:1)
您试图以递归方式拨打find
,但是当您拨打find(number-2);
时,您忘记了return
任何内容。因此,该函数返回undefined
,它不会与switch
中的任何案例匹配。