循环语句
重复相同语句不同值,可以使用循环语句
while
1.流程:先判断是否为true,为真就循环,为假退出循环
2.语法:
| while(条件表达式){
| 循环体
| }
3.案例:
- 1:将数字从5-1的顺序,输出到控制台中
var n = 5
while(n > 0){ // n:5 , 4, 3, 2, 1, 0
console.log(n) // 5, 4, 3, 2, 1
n-- // n: 4, 3, 2, 1, 0
}
console.log('循环结束');
- 2.正序输出
var i = 1
while(i < 6){
console.log(i);
i++
}
console.log("循环结束")
do-while
1.流程:先执行语句,再判断条件是否成真,为真循环,为假就退出循环。(至少执行一次)
2.语法:
| do{
| 循环体
| }while(条件);
3 案例:
- 将数字从5-1的顺序,输出到控制台中(使用do-while语句)
var n = 5
do {
console.log(n) // 5, 4, 3 , 2, 1
n-- // 4, 3, 2, 1, 0
} while (n > 0)
console.log('循环结束');
- 正序(1-5),输出到控制台(使用do-while语句)
var n =1
do{
console.log(n)
n++
}while(n<6)
console.log("循环结束")
for
1.流程:从初始化开始,再判断条件,然后执行循环体,最后改变条件。
2.语法:
| for(初始化; 条件; 改变条件;){
| 循环体
| }
- 案例:
- 1.正序(1-5)输出
for (var n = 1; n <= 5; n++) {
console.log(n)
}
- 2.倒序输出
for (var n = 5; n <= 1; n++) {
console.log(n)
}
嵌套循环(双重for语句)
1.for循环里又有一个for循环
2.eg:
for(var i = 1; i <= 2; i++){
for(var j = 1; j <=3; j++){
console.log('i :',i , ' j :',j)
}
console.log('----------------');
}
3.案例:
- 打印直角三角形
*
**
***
****
*****
for (var i = 1; i <= 5; i++) {
for (var j = 1; j <= i; j++) {
document.write('*')
}
document.write('<br>')
}
document.write()语句:将结果在页面中显示
- 打印等腰三角形
分析:
n 行数
i行号 空格 星
1 4 1
2 3 3
3 2 5
4 1 7
5 0 9
i n-i 2*i-1
var n = 5
for(var i = 1; i <= n; i++){
//打印空格
for(var j = 1; j <= n-i; j++){
document.write(' ')
}
//打印星
for(var k = 1; k <= 2*i-1; k++){
document.write('*')
}
//换行
document.write('<br>')
}
- 打印九九乘法表
// 外层循环打印行
for (var i = 1; i <= 9; i++) {
// 内层循环打印每行元素
for (var j = 1; j <= i; j++) {
document.write(i + 'x' + j + '=' + i * j+' ')
}
// 换行
document.write('<br>')
}
跳转语句
1.break语句:结束整个循环
-
有五个包子,吃完第三个就饱了,结束
for (var i = 1; i <= 5; i++) { console.log('我吃第' + i + '包子') // 判断吃了几包子 if (i === 3) { //结束循环 break } }
2.continue语句:结束本次循环,continue后面的代码不执行。 继续下一次循环
-
有五个包子, 吃到第3个包子掉地下了, 接着吃后面的
for (var n = 1; n <= 5; n++) { //如果是第3个包子,结束本次循环 if(n === 3){ continue // 结束本次循环,继续下次循环 } console.log('我吃第' + n + '包子') }
计数器
-
打印100-200内能被6整除的前3个数
var count = 0 for (var i = 100; i <= 200; i++) { if (i % 6 === 0) { console.log(i) count++ } if(count === 3){ break } }
-
打印出1900-2000年中所有的闰年,并以每行四个数的形式输出(使用document . write( )打印)
var num = 0 for (var year = 1000; year <= 2000; year++) { if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { document.write(year + ' ') num++ } if(num === 4){ document.write('<br>') num = 0 } }
累加算法
1.[累加型]类型诸如
口+口+口+口+.....+口+口
求其前n项之和的编程题。
2.编程思想:若设i为循环变量,s为前n项累加之和,则程序的
基本结构为:
s=0;
for( i=1 ;i<=n ;i++){
s=s+口;
}
3.案例:
-
入职薪水10K,每年涨幅5%,50年后工资多少?求该员工50年总共拿了多少工资?
var salary = 10000 * 12 // 第1年薪资 // salary = salary + salary*0.05 //第2年薪资 // salary = salary + salary*0.05 //3 // //4 var s = salary for(var year = 2; year <= 50; year++){ salary = salary + salary*0.05 //第year年薪资 s = s + salary } console.log('第50年的薪资是 ',salary.toFixed(2)); console.log('50后年的薪资是 ',s.toFixed(2));
-
1 + 2 + 3 + 4 + .... 100的和
var s = 0 for (var i = 1; i <= 100; i++) { s = s + i // 1 2 3 } console.log('1+2+3 ... + 100 ',s)