循环语句
- 循环就是重复做一件事,在JS中指的是循环执行某部分代码
- 循环结构是程序中一种很重要的结构,其特点是在给定条件成立时,反复执行某程序段,直到条件不成立为止
只要条件成立,就会不断地执行花括号里的语句
编写条件时,要避免出现死循环
while循环
//变量初始化
while(条件){
//条件成立就会不断执行这里的代码,直到条件不成立
//所以这里一般会伴随着条件的更新
}
var num = 100;//变量的初始化
while(num>10){//条件是否成立
console.log(6666);
// 变量更新
num--;
}
do…while
//变量的初始化
do{
//不管条件是否成立,先执行一次这里的代码,再进行条件判断,如果条件依然成立,则再次执行这里的代码
//所以这里一般会伴随着条件的更新
}while(条件)
例如下代码输出num=100,
var num = 100;
do{
console.log(num);
if(num%2===0){
document.write(num + ', ');
}
// 条件更新
num++;
}while(num<100);
for循环
for(变量的初始化; 条件判断; 变量更新 ){
//循环条件成立,则执行这里的代码
//两个分号必须写!
}
<案例>
- 打印100以内7的倍数
- 打印100以内的奇数
- 小王入职薪水10K,每年涨幅5%,10年后工资多少?
- 这10年小王赚了多少钱
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>13计算小王10年后的工资</title>
<script>
/*
小王入职薪水10K,每年涨幅5%,10年后工资多少?
* 这10年小王赚了多少钱
*/
var salary = 10000;//10500,11025
// 第一年的总额
var total = salary*12;
for(var year=2;year<=10;year++){
/*
2: 10000 + 10000*0.05
3: 10500 + 10500*0.05
4: 11025 + 11025*0.05
*/
// salary = salary + salary*0.05;// => salary = salary * (1+0.05) => salary *= 1.05
// 计算从第二年起的月薪
salary *= 1.05;
// 每年总额相加
total += salary*12;
}
document.write('十年后的工资:' + salary.toFixed(2));
document.write('<br>');
document.write('这10年小王赚了:' + total.toFixed(2));
</script>
</head>
<body>
</body>
</html
- 打印出1000-2000年中所有的闰年,并以每行四个数的形式输出
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>14以每行4个打印闰年</title>
<script>
/*
打印出1900年到现在所有的闰年,并以每行四个数的形式输出
*/
// 用于保存闰年年的数量
var qty = 0;
for(var year=1900;year<=2017;year++){
if(year%4===0 && year%100!==0 || year%400 === 0){
qty++;
document.write(year + ', ');
// 每4个闰年输出一个换行符
if(qty%4===0){
document.write('<br>');
}
}
}
</script>
</head>
<body>
</body>
</html>
[练习]
- 打印100以内所有偶数的和
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>for打印100以内所有偶数的和</title>
</head>
<body>
<div id="oushu"></div>
<script>
var a = 0;
for(var i=0;i<=100;i+=2){
a = a + i;
}
oushu.innerHTML = '100内偶数的和是' + a;
</script>
</body>
</html>
- 求出1-1/2+1/3-1/4…..1/100的和
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
</head>
<body>
<div id="he"></div>
<script>
//求出1-1/2+1/3-1/4…..1/100的和
var a = 0;
for(var i=1,j=1; i<=100; i++,j*=-1){
var a = j/i + a;
}
var he = document.getElementById('he');
he.innerHTML = '求出1-1/2+1/3-1/4…..1/100的和是' + a;
</script>
</body>
</html>
- 打印三角形
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>打印三角形</title>
</head>
<body>
<script>
for(var i=1,j=''; i<5; i++){
j += '*';
document.write(j+'<br>');
}
</script>
</body>
</html>
- 山上有一口缸可以装50升水,现在有15升水。老和尚叫小和尚下山挑水,每次可以挑5升。问:小和尚要挑几次水才可以把水缸挑满?通过编程解决这个问题。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>挑水问题</title>
</head>
<body>
<div id="count"></div>
<script>
// 山上有一口缸可以装50升水,现在有15升水。老和尚叫小和尚下山挑水,每次可以挑5升。问:小和尚要挑几次水才可以把水缸挑满?通过编程解决这个问题。
var count = document.getElementById('count');
for(var i=15,j=0; i<=50; i+=5){
j++;
console.log('i:' + i +'j:' + j);
}
count.innerHTML = '小和尚要挑' + j + '次水才可以把水缸挑满';
</script>
</body>
</html>