循环-跳转语句
1 回顾
// 1. 单向分支
if (条件表达式) {
语句...
}
// 2. 双向分支
if (条件表达式) {
语句...
} else {
语句...
}
// 3. 多向分支 else if
if (条件表达式) {
语句...
} else if (条件表达式) {
语句...
} else if (条件表达式) {
语句...
} else {
}
// 4. switch case
switch (表达式) {
case 表达式可能的值: 语句; break;
case 表达式可能的值: 语句; break;
case 表达式可能的值: 语句; break;
case 表达式可能的值: 语句; break;
default: 语句;
}
// 5. 嵌套分支
if () {
if () {
}
switch () {
}
} else {
if () {
} else {
}
}
2 循环语句
2.1 while 循环
while (条件表达式) {
语句...;
}
正常的循环:
- 循环条件不能永远都成立,否则会变为死循环。
- 随着循环次数的增加,循环条件应该越来越趋近于不成立。
// 循环输出0-10中所有的偶数
var i = 0;
while (i <= 10) {
if (i % 2 === 0) {
console.log(i);
}
i ++;
}
2.2 do while 循环
do {
语句...
} while (条件表达式)
while 循环和 do-while 循环的区别:
- 第一次循环,while 先判断再执行; do while 先执行一次。
- 第二次以及往后的循环,二者都一样都是先判断再执行。
- 循环同样的次数,二者循环条件表达式是一样的,do while 只比 while 少判读了一次。
// 1-10之间的奇数
var n = 1;
do {
console.log(n);
n += 2;
} while (n < 10);
案例-求和和求积
// 1.计算1-100所有数字的和
// 用while
var i = 1;
var sum = 0;
while (i <= 100){
sum += i;
i ++;
}
console.log('1-100的和:',sum)
// 用do-while
var i = 1;
var sum = 0;
do {
sum += (i ++)
} while (i <= 100)
console.log(sum);
// 2.计算所有两位数偶数的积 while
var res = 1;
var n = 10;
while (n < 99 ) {
res *= n;
n += 2;
}
// 3.计算所有个位数中奇数的积 do while
var res = 1;
var n = 10;
do {
res *= n;
n += 2;
} while(n < 99);
2.3 for 循环
for (循环标记变量初始化; 循环条件; 循环标记变量的变化) {
语句...
}
总结:
- 循环标记变量初始化只在正式循环之前执行一次。
- 每次循环先判断循环条件,成立才能执行,与 while 一致。
- 循环标记变量的变化在每次循环体语句执行结束后才执行。
// 循环输出0-10之间的奇数 for
for (var n = 1; n <= 10; n += 2) {
console.log(n);
}
console.log('');
// 计算1-100所有数字之和
var sum = 0;
for (var i = 1; i <= 100; i ++) {
sum += i
}
console.log(sum)
2.4 循环嵌套
// 输出表格8行6列
document.write('<table>');
for ( var i = 0; i < 8; i ++) {
document.write('<tr>');
for (var j = 0; j < 6; j ++) {
document.write('<td> '+ i +', '+ j +' </td>');
}
document.write('</tr>');
}
document.write('</table>');
案例:九九乘法表
document.write('<table>');
for (var i = 1; i <= 9; i ++) {
document.write('<tr>');
for (var j = 1; j <= i; j ++) {
document.write('<td> ' + j + '× '+ i +'='+(j * i) +'</td>')
}
document.write('</tr>');
}
document.write('</table>');
document.write('<table>');
for (var i = 1; i <= 9; i ++) {
document.write('<tr>');
// 空白9-i
for (var n = 1; n <= 9 - i; n ++) {
document.write('<td></td>');
}
// 有内容
for (var j = 1; j <= i; j ++) {
document.write('<td>' + j + '×' + i + '=' + (j*i) +'</td>')
}
document.write('<tr>');
}
document.write('<table>');
3 跳转语句
① break
在 switch case 中使用: 结束当前 case。
在循环(for、while、do while)中使用: 跳出并结束循环。
① continue
在循环(for、while、do while)中使用:跳出本次循环,下次循环继续。
// 循环输出1-9
for (var n =1; n <= 9; n ++) {
if (n === 5) {
// break;
continue;
}
console.log(n)
}