循環(huán)語句
重復(fù)相同語句不同值检碗,可以使用循環(huán)語句
while
1.流程:先判斷是否為true,為真就循環(huán),為假退出循環(huán)
2.語法:
| while(條件表達式){
| 循環(huán)體
| }
3.案例:
- 1:將數(shù)字從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('循環(huán)結(jié)束');
- 2.正序輸出
var i = 1
while(i < 6){
console.log(i);
i++
}
console.log("循環(huán)結(jié)束")
do-while
1.流程:先執(zhí)行語句戈轿,再判斷條件是否成真,為真循環(huán)阵子,為假就退出循環(huán)思杯。(至少執(zhí)行一次)
2.語法:
| do{
| 循環(huán)體
| }while(條件);
3 案例:
- 將數(shù)字從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('循環(huán)結(jié)束');
- 正序(1-5)挠进,輸出到控制臺(使用do-while語句)
var n =1
do{
console.log(n)
n++
}while(n<6)
console.log("循環(huán)結(jié)束")
for
1.流程:從初始化開始色乾,再判斷條件,然后執(zhí)行循環(huán)體领突,最后改變條件暖璧。
2.語法:
| for(初始化; 條件; 改變條件;){
| 循環(huán)體
| }
- 案例:
- 1.正序(1-5)輸出
for (var n = 1; n <= 5; n++) {
console.log(n)
}
- 2.倒序輸出
for (var n = 5; n <= 1; n++) {
console.log(n)
}
嵌套循環(huán)(雙重for語句)
1.for循環(huán)里又有一個for循環(huán)
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()語句:將結(jié)果在頁面中顯示
- 打印等腰三角形
分析:
n 行數(shù)
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>')
}
- 打印九九乘法表
// 外層循環(huán)打印行
for (var i = 1; i <= 9; i++) {
// 內(nèi)層循環(huán)打印每行元素
for (var j = 1; j <= i; j++) {
document.write(i + 'x' + j + '=' + i * j+' ')
}
// 換行
document.write('<br>')
}
跳轉(zhuǎn)語句
1.break語句:結(jié)束整個循環(huán)
-
有五個包子,吃完第三個就飽了君旦,結(jié)束
for (var i = 1; i <= 5; i++) { console.log('我吃第' + i + '包子') // 判斷吃了幾包子 if (i === 3) { //結(jié)束循環(huán) break } }
2.continue語句:結(jié)束本次循環(huán)澎办,continue后面的代碼不執(zhí)行。 繼續(xù)下一次循環(huán)
-
有五個包子金砍, 吃到第3個包子掉地下了局蚀, 接著吃后面的
for (var n = 1; n <= 5; n++) { //如果是第3個包子,結(jié)束本次循環(huán) if(n === 3){ continue // 結(jié)束本次循環(huán)捞魁,繼續(xù)下次循環(huán) } console.log('我吃第' + n + '包子') }
計數(shù)器
-
打印100-200內(nèi)能被6整除的前3個數(shù)
var count = 0 for (var i = 100; i <= 200; i++) { if (i % 6 === 0) { console.log(i) count++ } if(count === 3){ break } }
-
打印出1900-2000年中所有的閏年至会,并以每行四個數(shù)的形式輸出(使用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.編程思想:若設(shè)i為循環(huán)變量谱俭,s為前n項累加之和奉件,則程序的
基本結(jié)構(gòu)為:
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)