2016-02-19 88 views
0

我一直在試圖有一個簡單的乘法表程序重複,直到輸入「-1」。我嘗試了幾個循環的不同變體,但是我獲得的最成功只是重複提示問題。該代碼的工作原理,直到我試圖重複它。以下代碼是作爲一次性運行程序的工作版本。任何幫助讚賞。自動重複JavaScript功能在瀏覽器中,直到終止輸入輸入

function getVariables(){ 
    var table = parseInt(prompt("Enter table: ")); 
    var start = parseInt(prompt("Enter start: ")); 
    var end = parseInt(prompt("Enter end: ")); 

    if (isNaN(table) || isNaN(start) || isNaN(end)) { 
     alert("Please enter numerical integers only"); 

     getVariables(); 
    } 
    else { 
     timesTable(table, start, end); 
    } 
} 

function timesTable(table, start, end) { 
    for (;start <= end; start++) { 
     document.write(table + " * " + start + " = " + table * start  + "<br/>"); 
    } 
} 

var proceed = prompt("Do you want to display times tables? Press 'ENTER' to continue or enter '-1' to exit."); 

if (proceed != -1){ 
    getVariables(); 
} 
+0

https://developer.mozilla.org/en-US/docs/Web/API/document.write – Teemu

回答

0

對於是/否的問題,你應該使用confirm(),不prompt()

while (confirm("Do you want to display times tables?")) { 
    getVariables(); 
} 

但是,如果你想使用prompt,這是

while (prompt("Do you want to display times tables? Press 'ENTER' to continue or enter '-1' to exit.") == '-1') { 
    getVariables(); 
} 
+0

感謝您回覆Barmar!我以前嘗試過「while(提示)」版本,但是這反覆執行提示問題。只有在輸入「-1」後才顯示乘法表。此外,當我嘗試「while(confirm)」版本時,它不允許我需要的「-1」,並導致無限循環。我無法弄清楚爲什麼「while循環」在重複提示之前不會執行整個程序。 – user3393940

+0

這是因爲瀏覽器在所有Javascript完成之前都不會重新顯示DOM。只要你在Javascript循環中,你將不會在瀏覽器窗口中看到任何東西。 – Barmar

+0

而不是使用循環,使用網頁上的按鈕。當用戶點擊按鈕時,運行'timesTable'函數。 – Barmar