Javascript:How 在满足条件时中断 while 循环,以便在 Var 不为空时终止循环(Break Not Working

Javascript:How to break a while loop when a condition is met to make it so that the loop is terminated when a Var is not null (Break Not Working

 var Age;
    
    Age = prompt("How old are you");
    
    while (Age === null){
        prompt("Please Cofirm You Name");
     if (Age > 0 ){
    
        break;
     }
    }

我正在努力使用户处于循环中,直到 var Age 不为空...我的目标是使您无法取消提示而不得不输入提示。我试过使用休息时间;在 if 语句中,但它不起作用。 当我使用休息时;在 if 语句中它继续发送提示 还有另一种方法可以做到这一点 还是出于某种原因,var Age 的值是否等于 null(即使您添加了一个大于 0 的整数),如果有人知道如何修复它 有没有更好的方法让用户在提示中输入

先谢谢你

试试 do-while:

let age, age2;

do {
  age = prompt("How old are you?");
} while (age === "");

do {
  age2 = prompt("Please Cofirm Your age");
} while (age2 === "" || age2 !== age);

一个while-loop有一个break,看这个简单的例子。

let a = 2;
while (a <100) {
    console.log(a);
    a *= 2;
    if (a===16)
        break;
}

var Age = prompt("How old are you?");
Age = Number(Age);
while (isNaN(Age) || Age < 1) {
    Age = prompt("Please confirm your age.");
    Age = Number(Age);
}

在提示对话框中,用户可以输入任何内容。所以我们试图通过使用 Number(Age) 来查看用户是否输入了一个数字,它试图将用户输入的值解析为一个数字,如果它是一个数字,return 就是一个数字。

这意味着如果用户输入的值是数字,那么年龄将是一个有效数字(但它可能是负数,这对我们的用例来说是无效的)。数字以外的任何值都会给出 NaN 或 0。

因此,当您编写 Age = Number(Age)

  • 年龄可能被分配一个适当的数字(正数或负数),或者
  • NaN(NaN 代表 not a number,它被认为是一种 JS 中的数据),或
  • 0 当用户输入 space(s).

在while循环条件中,我们正在检查用户输入的值是否无效。即 is Age not a number?is Age less than 1?.

在这两个条件之间使用的||运算符将returntrue如果这两个条件中的任何一个为真(事实上,如果第一个条件为真,它不会'甚至懒得去检查第二个条件,只是 return 是真的)。如果两个条件都为假,则 returns false

因此,如果用户输入了无效的输入(负数或 space 或字符串),我们会提示用户直到他输入正确的值。