在本教程中,您将学习如何使用 JavaScript do...while
语句创建一个循环来执行语句,直到条件为 false
。
JavaScript do ... while 语句简介
do...while
语句创建一个循环,该循环执行指定的语句,直到条件的计算结果为false
。以下语句说明 do...while
循环的语法:
do {
statement;
} while(expression);
与 while
循环不同,do-while
循环总是在评估 expresion
之前至少执行一次 statement
。
因为 do...while
循环在每次迭代后计算表达式 expresion
,所以它通常被称为测试后循环。
在循环体内,您需要修改一些变量以确保在迭代之后让 expresion
的值是 false
。否则,你将有一个无限循环。
请注意,从 ES6+ 开始,while(expression)
后面的分号 ;
是可选的。所以你可以使用下面的语法:
do {
statement;
} while(expression)
下面的流程图说明 do-while
循环语句:
在实践中,当您希望在检查条件之前至少执行一次循环时,通常会使用 do...while
语句。
JavaScript do while 语句示例
让我们举一些使用 do...while
语句的例子。
JavaScript do while 语句示例
以下示例使用 do...while
语句将 0 到 4 的五个数字输出到控制台:
let count = 0;
do {
console.log(count);
count++;
} while (count < 5)
输出:
01234
在这个例子中:
- 首先,声明变量
count
并将其初始化为零。 - 其次,打印
count
变量并在每次迭代中将其值增加 1,直到其值大于或等于 5。
JavaScript do while语句制作一个简单的猜数游戏
下面的示例使用 do...while
语句生成猜数游戏。
该脚本生成一个介于 1 和 10 之间的随机整数。您必须进行多次猜测,直到您的数字与随机数匹配。
// 随机生成一个 1 - 10 秘密数字
const MIN = 1;
const MAX = 10;
let secretNumber = Math.floor(Math.random() * (MAX - MIN + 1)) + MIN;
let guesses = 0; // 变量保存要猜测的数字
let hint = ''; // 变量保持猜对的数字
let number = 0;
do {
// 获取用户的输入
let input = prompt(`Please enter a number between ${MIN} and ${MAX}` + hint);
// 将用户输入转换为整形数值
number = parseInt(input);
// 增加数字次数
guesses++;
// 检查用户输入的与要猜测数值是否正确
if (number > secretNumber) {
hint = ', and less than ' + number; // less than 小于
} else if (number < secretNumber) {
hint = ', and greater than ' + number; // greater than 大于
} else if (number == secretNumber) {
alert(`Bravo! you're correct after ${guesses} guess(es).`);
}
} while (number != secretNumber);
代码如何运行的。
首先,声明 MIN 和 MAX 常量并将它们的值初始化为 1 和 10:
const MIN = 1;
const MAX = 10;
第二、用 Math.random()
函数生成一个随机浮点数,取值范围在 0 和 1 之间(包括0但不包括1)。
要生成介于 MIN 和 MAX 之间的随机数,请使用以下表达式:
Math.random() * (MAX - MIN + 1)
但是,结果是一个浮点数。因此,您需要使用 Math.floor()
函数将其转换为整数:
Math.floor(Math.random() * (MAX - MIN + 1))
要生成介于最小值和最大值之间的随机数,请使用以下表达式:
let secretNumber = Math.floor(Math.random() * (MAX - MIN + 1)) + MIN;
第三,定义三个变量,用于存储猜测次数、提示次数和用户输入的次数:
let guesses = 0; // 猜测次数
let hint = ''; // 提示次数
let number = 0;
第四、使用 prompt()
函数获取用户的输入:
let input = prompt(`Please enter a number between ${MIN} and ${MAX}` + hint);
请注意,prompt()
函数仅适用于浏览器。如果在 node.js 等其他环境运行代码,请选择对应的函数。
prompt()
函数返回一个字符串,因此,您需要使用 parseInt()
函数将其转换为整数:
number = parseInt(input);
第四、在每次迭代的增加猜测次数:
guesses++;
第六、将输入的数字与秘密随机数字进行核对并提示。如果数字匹配,则使用alert()
函数显示一条消息:
if (number > secretNumber) {
hint = ', and less than ' + number;
} else if (number < secretNumber) {
hint = ', and greater than ' + number;
} else if (number == secretNumber) {
alert(`Bravo! you're correct after ${guesses} guess(es).`);
}
第七,执行下一次迭代,直到数字与秘密数字匹配。
while (number != secretNumber);
结论
- 使用
do…while
语句创建一个循环来执行重复代码,直到条件为false
才终止do…while
循环。