14-中断循环
3.5.5 中断循环
在JavaScript中实现循环 在本节中,您将创建一个实现JavaScript循环的MongoDB shell脚本。在这个示例中,您将实现标准for循环、for/in循环和while循环。这提供了您将在本书后面看到的常见循环类型的示例。 请按下面的步骤编写一个脚本,该脚本创建一个包含一周各天的数组,再使用各种循环技术迭代该数组。 1.确保启动了MongoDB服务器。虽然这里不会连接到数据库,但要启动MongoDB shell,必须启动MongoDB服务器。 2.在文件夹code/hour03/中,新建一个文件,并将其命名为loops.js。 3.在这个新文件中输入程序清单3.1所示的代码。这些代码创建数组并实现了循环。 4.将这个文件存盘。 5.打开一个控制台窗口,并切换到目录code/hour03。 6.执行命令mongo loops.js以运行第2步和第3步创建的JavaScript文件。程序清单3.2显示了这个脚本的输出。 程序清单3.1 loops.js:使用JavaScript循环迭代数组 程序清单3.2 loops.js-output:使用JavaScript循环迭代数组的输出 ▲
使用循环时,有时需要在循环内部中断代码的执行,而不是等到下一次迭代。为此,可采取两种不同的方式:使用关键字break和continue。
关键字break终止整个for或while循环,而关键字continue终止当前迭代,跳到下一次迭代继续执行。请看下面的示例。
为星期三时使用关键字break:
var days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"];
for (var idx in days){
if (days[idx] == "Wednesday")
break;
print("It's " + days[idx] + "\n");
}
这将在元素值为Wednesday时提前结束循环:
It's Monday
It's Tuesday
为星期三时使用关键字continue:
var days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"];
for (var idx in days){
if (days[idx] == "Wednesday")
continue;
print("It's " + days[idx] + "\n");
}
注意到continue语句导致没有显示Wednesday,但整个循环还是执行了:
It's Monday
It's Tuesday
It's Thursday
It's Friday
▼ Try It Yourself
01 var weekDays = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"];
02 print("Week Days: ");
03 printjson(weekDays);
04 print("Combining Arrays: ");
05 var fullWeek = weekDays.slice(0);
06 fullWeek.unshift("Sunday");
07 fullWeek.push("Saturday");
08 print("Full Week: ");
09 printjson(fullWeek);
10 var midWeek = weekDays.splice(1,3);
11 print("Mid Week: ");
12 printjson(midWeek);
13 print("Sliced weekdays: ");
14 printjson(weekDays);
Week Days:
[ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ]
Combining Arrays:
Full Week:
[
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
]
Mid Week:
[ "Tuesday", "Wednesday", "Thursday" ]
Sliced weekdays:
[ "Monday", "Friday" ]