2013-06-25 25 views
0

我已經寫了一些JavaScript代碼,我已經做了遞歸函數。我期待一個數值,但我收到一個NaN。我該如何解決這個問題?NaN消息,即使所有的Javascript工作似乎很好在遞歸函數

<script language="javascript"> 
    function toperform() 
    { 
     var proceed=confirm("Do you want to proceed?"); 
     if (proceed==true) 
     { 
      var a = checknum("num1"); 
      var b = checknum("num2"); 
      alert("The sum is "+(a+b));            
     } 
     else 
     { 
      alert("You chose not to proceed!"); 
     } 
    } 
    function checknum(arg) 
    { 
     var num=parseInt(prompt("Enter "+arg));          
     if (isNaN(num)) 
     { 
      alert("Please enter a valid number"); 
      num=checknum(arg); 
     } 
     return num; 
    } 
</script> 
+0

沒有收到來自checknum警報?我會放一個調試器;在那之後觀看我做的論據 – Edorka

+0

。我彈出並收到所有消息。 – pranavsharma

+3

在Chromium瀏覽器上正常工作。 http://jsfiddle.net/mGWYv/ – Paul

回答

0

我想這是更多的語義,重複,直到得到有效的數字,但不是遞歸

function checknum(arg) 
    { 
     var num = null ; 
     while (isNaN(num)) 
     { 
      if (num != null) 
       alert("Please enter a valid number"); 
      var input = prompt("Enter "+arg); 
      num = parseInt(input);    
     } 
     return num; 
    } 
+0

上的firefox相同,這很棒,但是如果我想遞歸執行它,該怎麼辦。我的意思是我已經做到了,我沒有得到的是爲什麼我得到一個NaN。它沒有意義。 – pranavsharma

+0

似乎在jsfiddle它的工作。你在瀏覽什麼瀏覽器? – Edorka