javascript - Cant not get two if else statements to work? checking strings and numbers -
i run these 2 if else statement can not them work ? please help.
if input sting fail go beginning , ask again.
function table(){ var num = prompt("please enter number"); if (num <= 0 && typeof num != 'string') { alert("invalid number or zero") ; table(); } else { alert("ok") ; } } table();if not correct text beginning , ask again.
function text(){ var txt = prompt("please enter rock or scissors or paper"); if (txt != "rock" || "scissors" || "paper") { alert("failed") ; table(); } else { alert("ok") ; } } text();
thank you.
the typeof result prompt always either "string" (the user clicked ok or pressed enter) or "object" (the user clicked cancel or pressed esc), because typeof null "object" , prompt returns typed, or null on cancel. that's what's wrong first if.
if blanks not acceptable, simple check !:
var num = prompt(...); if (!num) { // user clicked cancel or didn't type } ...then use +num convert num number, or use parseint(num, 10) if want ensure base 10 , ignore text after number (parseint("42foo", 10) 42 rather nan; +"42foo" nan).
the second if's problem have repeat you're testing , use && rather ||:
if (txt != "rock" && txt != "scissors" && txt != "paper"){ "if txt not rock , txt not scissors and..."
a switch might useful there:
switch (txt) { case "rock": case "scissors": case "paper": alert("ok") ; break; default: alert("failed") ; table(); break; }
Comments
Post a Comment