循环的作用?
循环就是对一些代码执行重复作用,就比如你想用打印台(conloge.log)打印'你好'100次,该怎样解决呢?如果直接自己写那就太麻烦了,这就可以用到循环了,因为循环可以重复某些代码。
循环的分类
循环根据判断条件可以大致分为两种——while型,for型。可以说每种都有自己优点。for循环主要是做一些跟数字有关的问题,而while则侧重判断条件较复杂的类型问题。
for循环
先看语法for(初始值表达式;条件表达式;操作表达式){ 循环体内容 } 。大概的语法就是这样,接下来看一些例子。
for循环案例
首先可以解决打印100次'你好'的问题,因为要打印100次,并且该问题与数字有关推荐使用for循环。
{
console.log('你好');
}
`这是一个简单的案例,其中要注意for里面的初始值表达式、条件表达式、操作表达式之间要用';'隔开。 接下来看一个求和的案例。
for (i = 1; i <= 100; i = i + 1) {
sum += i;
}
console.log(sum);
这样就简单的做了个求和案例, 1~100之间的求和。如果要想求其他数的累加和和可从初始值表达式;条件表达式做一些改变。
双重for循环案例分析
简单分析一下一个九九乘法表,和一个冒泡排序案例。
先看九九乘法表。
for (var i = 1; i <= 9; i++) {
for (var j = 1; j <= i; j++) {
str = str + j + '*' + i + '=' + j * i;
}
str = str + '\n';
}
console.log(str);
```这就是大概实现该功能的代码。这其中涉及到字符串的拼接,也是比较重要的知识点了。
先看外层。第一个for主要是让里层的for执行几次。可以看到外层的for一共课执行9次,那就是说里层的for也要运行9次。里层的for主要是实现该功能的主要代码。其中j <= i;是关键的也就是外层循环了几次,里层的for就会循环几次。简单说假如外层已经循环了三次,也就是i=3;那么里层的这一次就要循环3次。这也是比较核心的想法了。
#### 冒泡案例
``` var arr = [10, 6, 4, 2, 1];
for (var i = 0; i < arr.length - 1; i++) {
for (var j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
var temp = 0;
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
alert(arr);
冒泡排序主要是寻找里层和外层的关系。简单分析一下。首先该数组有五个元素,那么最多也就用四次就能排序完毕。第一个元素也就是索引号为0的元素最多要比较四次,这是里层核心地方。以此类推,第二个元素也就是索引号为1的元素最多要比较三次;第三个元素也就是索引号为2的元素最多要比较两次等等;这样的规律已经比较明显了。里层的循环次数跟外层的计数器有关系,和数组的长度有关系。
总结
案例只是简单分析,会有不恰当的地方,也是自己的一些想法,总之要多写多想。