簡體   English   中英

我想使用 HTML 和 JavaScript 執行 While 循環,但是使用我當前的代碼循環並沒有結束

[英]I would like to do a While loop using HTML and JavaScript however with my current code the loop is not ending

目前,循環一直在運行。 似乎我的 else 函數沒有被正確讀取。 有人可以請提供一些幫助。

此外,當我在 Google Chrome 上運行它時,首先彈出的是一個“Hello Null”框,這意味着 window.alert 功能正在自動運行。

<html>
  <head>
    <title>JavaScript Example</title>
    <script>
      "use strict";
        function start() {
          let ino = window.prompt("What is your name?");
          window.alert("Hello " + ino);
          while (ino != "end") {
            let ino = window.prompt("What is your name?");
            window.alert("Hello " + ino);}
        else {window.alert("go away now mate"); }
            }

    </script>
  </head>
  <body onLoad="start()"> 
    <p>Javascript Test Page</p>
  </body>
</html>

在我看來,您正在嘗試提示,直到用戶將自己標識為“結束”。 如果是這種情況,您可能想要在提示周圍做...while。

let name;
do {
    name = window.prompt....;
} while (name !== 'end');

請注意,您在沒有明確定義的用例的情況下混合了 2 個目標。 如果你想告訴他們go away mate你應該使用while循環嗎? while 循環聽起來像是您想繼續問這個問題。 if...else 看起來像是您想要驗證他們的輸入並reject如果它不是“結束”。 如果您的實際目標是詢問用戶兩次,則保留一個計數並將該計數用作 while 循環中的條件。 while (name !== 'end' && count < 3) 您可以告訴用戶在 while 循環完成后“嗡嗡作響”並且名稱仍未end

您的另一個問題,它在頁面加載后立即顯示您的提示是有道理的,因為您將其綁定到 onLoad 事件。 不應該嗎?

看着路易斯回答; 我有類似的問題,並添加了下面的代碼作為示例實現。 請嘗試並在下次使用控制台瀏覽器檢查是否有任何錯誤。 在線添加代碼之前。

  • 還要注意縮進,並與它們保持一致下面是一個例子。
  • 使用可讀的變量,其他開發人員可能不知道 ino 是什么意思。
<html>
  <head>
    <title>JavaScript Example</title>
    <script>
      "use strict";
        function start() {
            let name = window.prompt("What is your name?");
            let count = 1;

            while (name !== "end" && count <= 3) {
                window.alert("Hello " + name);
                name = window.prompt("What is your name?");
                count++;
            }
            window.alert("go away now mate"); 
        }

    </script>
  </head>
  <body> 
  <button onclick="start()">start</button>
    <p>Javascript Test Page</p>
  </body>
</html>

暫無
暫無

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

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