簡體   English   中英

如何用 JavaScript 編寫簡單的“數字樓梯”?

[英]How to write simple "number stairs" with JavaScript?

顯然,我必須用 JS 和 HTML 編寫簡單的代碼。 它必須使用提示詢問最小和最大數字,並從最小到最大寫出樓梯。 例如,對於 min 2 和 max 6,結果將是:

2
 3
  4
   5
    6

我通過從左邊距添加空格來解決它,但我的代碼不起作用。 請幫助我優化和使代碼工作。

 <!DOCTYPE html>
<html>
<body>

<h2>Stairs generator</h2>

<button onclick="stairs()">Start</button>

<script>
     
     function stairs() {
     var max;
     var min;
     var space = '&nbsp;'
     var num1 = parseInt(prompt("Enter first number"));
        
        while(num1==null  isNaN(num2))
        {
            num1 = prompt("Enter first number")
        } 
        var num2 = parseInt(prompt("Enter first number"));
        while(num2==null  isNaN(num2))
        {
            num2 = prompt("Enter second number")
        }
        if (num1 > num2) 
        {
            max = num1;
            min = num2;
        }
        else if (num1 < num2)
        {
            max = num2;
            min = num1;
        }
        else 
        {
            document.write(space = space + '&nbsp;&nbsp;&nbsp;')
            document.write(num1 + '<br/>')
        }
        document.write('<p>');
        while(min <= max) 
        {
            document.write(space = space + '&nbsp;&nbsp;&nbsp;')
            document.write(min + '<br/>')
            min++
        }
        document.write('</p>')
        }
</script> 
</body>
</html>

首先,數字不會是完美的樓梯,除非您使用等寬字體,也就是具有所有相同大小字母/數字的字體

第二次使用while循環

var NumHolder;
var timesLooped = 0;
while(num1-1 < num2){
   num1;
   document.write += num1;
   document.write += '<br>'
   for(x = 0;x-1 < timesLooped;x++){
      document.write += '&nbsp;'
   }
   num1 ++;//adds 1 to var
}

所以它會循環直到 num1-1 等於 num2
例如:promts 是 1 & 4 它循環 1 個顯示然后 2 個顯示然后 3 然后 4 個輸出:
1
2
3
4

您的 javascript 代碼中有一些語法錯誤(您忘記了 while 循環中的 OR 運算符),並且在您詢問的第一個 while 循環中 isNUll(num2) thisch 始終為真

 function stairs() { var max; var min; var space = '&nbsp;' var num1 = parseInt(prompt("Enter first number")); while(num1==null || isNaN(num1)) { num1 = prompt("Enter first number") } var num2 = parseInt(prompt("Enter first number")); while(num2==null || isNaN(num2)) { num2 = prompt("Enter second number") } if (num1 > num2) { max = num1; min = num2; } else if (num1 < num2) { max = num2; min = num1; } else { document.write(space = space + '&nbsp;&nbsp;&nbsp;') document.write(num1 + '<br/>') } document.write('<p>'); while(min <= max) { document.write(space = space + '&nbsp;&nbsp;&nbsp;') document.write(min + '<br/>') min++ } document.write('</p>') }
 <!DOCTYPE html> <html> <body> <h2>Stairs generator</h2> <button onclick="stairs()">Start</button> </body> </html>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM