【Day11】忙得团团转的回圈


回圈指的是「重复做某件事,次数随着数值『递增」或『递减』,当数值满足所设的条件,则退出回圈」。

所以当我们要「重复做某件事」的时候,第一个进入脑海中的方法应该就是回圈。例如console.log(1)到(9)、求某数值范围的平方或是九九乘法表之类的。

最常见的回圈有 for 与 while 两种。

for回圈

for回圈的语法如下:

for(var i = 0; i < n; i++ ){
	/执行某件事
}

var i = 0; 是在设定初始值,变数i的有效范围与for回圈相同。

i < n; 则是在为for回圈设定条件,变数i的有效范围跟for回圈的有效范围是相同的,一旦变数i满足这个条件,回圈就会结束。如果还为满足就去执行{}内的程序叙述。

i++; 则在回圈跑完一次时递增,直到回圈结束。

让我们来试试看99乘法表该如何利用回圈来执行:

for (var = 1; i <= 9; i++) {
	for (var j = 1; j <= 9; j++){
		console.log( i * j);
	}
}

while回圈

while回圈通常长成这个样子:

var i = 0;
while (i < 10){
	/执行某个程序叙述
	i++;
}

var i = 0; 设定初始值。

(i < 10) 这定回圈执行的条件。

i++;在{}的结尾处让变数递增或递减,直到变数i满足所设条件,结束回圈。

让我们试着用while回圈来印出1~9的平方:

var i = 1;
while (i <= 9) {
	console.log(i * i);
	i++;
}

while回圈最常见的疏忽就是忘了在结尾设定变数递增(i++),结果造成条件一直无法满足,於是无穷回圈的一直执行下去。

那何时该用for回圈?何时该用while回圈呢?

在《0陷阱!0误解!8天重新认识JavaS》一书中有提到:

  • for回圈的使用情境,大多是用在回圈执行次数「明确」的状态。
  • 而while回圈刚好相反,当回圈执行次数「不确定」的时候更适合。

让我们利用for回圈来选出大乐透的号码,有1到49个号码,要选出6个不重复号码:

var lottery = [];
var n;

for (var i = 0; i < 6; i++){
	n = Math.floor(Math.random() * 49) + 1;
	if ( lottery.indexOf(n) === -1){
		lottery.push(n);
	}
}

49个号码选出6个,执行次数6次,如果使用for回圈,看起来就一目了然,是适合用for回圈来执行的情境。

范例实作


<<:  Day11:[资料结构]Binary Tree - 二元树

>>:  Day 11 「我以火力掩护你」在测试的保护下重构:消除重复

[DAY30]从上船到沉船30天心得

铁人30天心得 前言 k8s真的好硬rrrrr,写了30天,感觉才不到k8s 1%的内容,加上k8s...

Day 06 : 什麽是 MLOps

各种商务情境都在思考如何融入 AI 提供更适切的智慧化服务,在Day 04 : 以资料为中心的人工智...

IT 铁人赛 k8s 入门30天 -- day11 Helm - Package Manager

前言 今天要来讲说 Helm 这个工具 因为 Helm 版本会不断推陈出新, 因此在今天的内容着重再...

[Day 07] - Spring Boot 实作登入验证(一)(TOKEN or SESSION?)

昨天在controller有做了一个post的登入api, 不过也就只是验证你传入的帐密有没有正确而...

[Day 5]从零开始学习 JS 的连续-30 Days---比较与逻辑运算子

比较与逻辑运算子 比较运算子 用於判断比较运算子前後的结果回传逻辑值。 运算子如下 > 大於 ...