不能得到两个if else语句工作?检查字符串和数字
Cant not get two if else statements to work? checking strings and numbers
我想运行这两个if else语句,但我不能让它们工作?请帮助。
-
如果输入失败,返回开始并重新询问。
function table(){ var num = prompt("please enter any number"); if (num <= 0 && typeof num != 'string') { alert("invalid number or Zero") ; table(); } else { alert("ok") ; } } table();
-
如果不正确,返回开始并重新询问。
function text(){ var txt = prompt("please enter rock or scissors or paper"); if (txt != "rock" || "scissors" || "paper") { alert("failed") ; table(); } else { alert("ok") ; } } text();
谢谢。
从prompt
返回的typeof
结果将始终是"string"
(用户单击确定或按Enter)或"object"
(用户单击取消或按Esc),因为typeof null
是"object"
和prompt
返回输入的内容,或取消null
。这就是第一个if
的问题所在。
如果空格不可接受,则简单检查为!
:
var num = prompt(...);
if (!num) {
// User clicked Cancel or didn't type anything
}
…然后使用+num
将num
转换为一个数字,或者使用parseInt(num, 10)
这样做,如果你想确保基数10并忽略数字之后的任何文本(parseInt("42foo", 10)
是42
而不是NaN
;+"42foo"
是NaN
).
第二个if
的问题是,您必须重复您正在测试的内容,并使用&&
而不是||
:
if (txt != "rock" && txt != "scissors" && txt != "paper"){
"如果txt不是石头,txt不是剪刀和…"
switch
可能在这里有用:
switch (txt) {
case "rock":
case "scissors":
case "paper":
alert("ok") ;
break;
default:
alert("failed") ;
table();
break;
}
试试下面的语法:
var num = parseInt( prompt("please enter any number") );
if (num <= 0) {
// ...
}
第二种情况:
var txt = prompt("please enter rock or scissors or paper");
if (txt != "rock" && txt != "scissors" && txt != "paper") {
// ...
}
相关文章:
- 此 JavaScript 代码无法正常工作(if-else 语句)
- JqueryUI,多个ID和else if 语句在可丢弃,我如何让它们工作
- 用于检查文件扩展名不工作的Javascript If语句
- 为什么不'我的if/else语句不能正常工作
- 为什么我的 javascript else 语句停止工作
- 不了解这种返回语句是如何工作的
- 可以't使if-else-jquery语句工作
- Check IF条件返回false,但IF中的语句仍然可以在JavaScript中工作
- Javascript/JQuery嵌套if语句工作不正常
- 对于语句未按预期工作
- 如果语句按预期工作,为什么这不行
- 如果,否则如果语句无法正常工作
- 如何在 JavaScript 中工作,如果不在控制语句中
- if 和 else-if 语句拒绝在 jQuery 的 AJAX 函数中工作
- 这个 if 语句如何工作和意味着?(Javascript)
- ELSE/IF 语句无法正常工作
- 如果语句不能在 Javascript 单选按钮上正常工作
- Cookie if 语句无法正常工作
- 延迟语句(如 promise() 和 done())如何工作
- 如果语句在控制台中工作,而不是在源代码中工作