[快速入门前端 47] JavaScript:迴圈 (2) for 和 while 比较

for 和 while

其实 forwhile 最大的差异在于「是否知道要跑几次」,在写 for 迴圈时,我们必须在一开始就设定好条件和变数变化;而 while 中只需要写迴圈的条件。所以当我们不知道需要执行几次时,就可以使用 while 迴圈 配合 if-else 条件判断,例如当我们需要抢高铁票时可以这样写:

let haveTicket = false; // 预设没有票while(haveTicket == false) { // 当没有票时会不断尝试抢票    // 执行抢票    if (有票) {        haveTicket = true; // 当买到票时将变数改为 true,停止迴圈    }}

或我们也可以使用 while 进行数学运算,例如算出 1 + n 加到多少时最靠近 100:

let sum = 0;let count = 0;while (sum+count <= 100) { // 条件为目前总和 + 变数小于 100    count++; // 初始变数为 0,所以先 + 1    sum += count; // 将变数加到总合中}console.log(sum); // 最后总和为 91console.log(count); // count 为 14,但加了 14 后会超过 100,所以最终答案为 13

while 结合 break

之前在介绍 switch 条件判断时我们有说到 break 可以用来跳出该区块,而在 while 中也同样能够使用 break 去结束迴圈。

範例:
从 1 加到 n,直到超过 100

let sum = 0; // 预设总和为 0let num = 1; // 从 1 开始跑迴圈while (true) { // 先将条件设定为 true,会不断跑迴圈    if (sum < 100) {        sum += num;        num++;    }    else {        break;    }}console.log(sum);console.log(num);

for 结合 if-else 判断

範例:判断某数是否为质数

使用 prompt() 让使用者输入数字,并判断是否为质数质数的定义为大于 1 且只能被 1 和该数本身整除的数字
let input = prompt("请输入入字");if (input > 1) {    // 判断是否质数,需要将该数字与 2 到 (该数字-1) 运算一遍看看是否整除,若都不整除则此数为质数    // 在跑迴圈时需要先设一个变数来存取是不是质数    let output = true; // 预设是质数    for (let i = 2; i < input; i++) {        if (input % i == 0) {            // input % i == 0 成立代表它可以被某数整除,代表它不是质数            output = false; // 不是质数,改变变数的值            break; // 只要有一个数可以被整除就不是质数了,所以可以直接跳出迴圈不用检查其他的        }    };    // 跑完迴圈后可以检查变数 output 的值,若为 true 表示为质数    if (output == true) {        alert("是质数");    }    else {        alert("不是质数");    }}else {    alert("小于 1 没办法判断啦");}

上一篇:[快速入门前端 46] JavaScript:迴圈 (1) for 、while、do while 简介
下一篇:[快速入门前端 48] JavaScript:迴圈 (3) 双重迴圈
系列文章列表:[快速入门前端] 系列文章索引列表


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章