目录
1、for循环
注:(1)在没有"{ }"的时,循环的控制范围到期后的第一条语句;
(2)三个表达式都可以省略,但是分号不能省略 。
练习1:计算100以内所有的偶数和、奇数和并输出
<script>
//100以内的奇数和、偶数和
var sum = 0;
var s = 0;
var i,n;
for(i=2;i<=100;i=i+2){ //循环找到100以内所有的偶数
sum = sum + i
}
for(n=1;n<=100;n=n+2){ //循环找到100以内所有的奇数
s = s + n
}
console.log('100以内的所有偶数和为',sum)
console.log('100以内的所有奇数和为',s)
</script>
练习2:判断输入的一个整数是否是素数
素数(质数):只能被1和它本身整除的数
<body>
<!-- 思想:因数只有1和他本身。则n除以2~n-1之间的每个数都不能整除则为素数。 -->
<script>
var n = parseInt(prompt('请输入一个正整数'))
var flag = true;//标记变量,初值为true表示假定当前的n为素数
for( var i=2;i<n;i++){
if(n%i==0)
{
flag = false//表示n不是素数
}
}
if(flag ===true){
alert(n+'是素数')
}
else{
alert(n+'不是素数')
}
</script>
</body>
2、break语句
终止循环(在循环体中若遇到该语句则终止循环,无论循环是否做完)
<body>
<script>
for(var i=1;i<=10;i++){
if(i%2 ==0){
break; //break终止循环。break只运行一次。
//当i=1时,进入if≠0直接输出1;
//再进入for循环,i=2,if=0;进入break,直接跳出来终止循环。因此break仅运行一次。
//console的值仅一个1
console.log('i=',i)
}
</script>
</body>
3、continue语句
结束本次循环 ,继续下次循环
<body>
<script>
for(var i=1;i<=10;i++){
if(i%2 ==0){
continue;//continue继续循环。当i=1时,进入if≠0直接输出1;
//再进入for循环,i=2,if=0;进入continue,直接进行下一次循环。
//continue的值有1,3,5,7,9
}
console.log('i=',i)
}
</script>
</body>
练习3:计算斐波拉契数列的前20项之和
斐波拉契数列:前两项是第三项之和:1 1 2 3 5 8 ...
<body>
<!-- 1,1,2,3,5,8,13,21...计算前20项之和。
思想:数列里前两项之和等于第三项
考察点:变量的移动 -->
<script>
var f1=1,f2=1;
var fn,s=f1+f2;
for(i=1;i<=18;i++){
fn=f1+f2;
f2=f1;
f1=fn;
s=s+fn;
}
console.log('前20项之和=',s)
</script>
</body>
4、while循环(' 当 循环)
注:"条件表达式"的运算结果必须是Boolean(eg:不等式)型
<script>
//用while循环实现100以内所有整数的和
var i=1,sum=0;
while(i<=100)
{
sum = sum + i;
i++;
}
console.log('1+2+...+100=',sum)
</script>
注:一般题中告知循环次数可以采用for循环,只告诉循环结果的可以采用while循环
5、do-while循环
注:(1)' do '是关键字,必须和while结合使用,不能单独使用
(2)无论条件是否为true,循环体语句至少执行一次
6、循环嵌套
在一个循环内部再套一个或多个循环
循环嵌套,外循环执行一次,内循环必须执行完全直至跳出内循环,再进行下一次的外循环;下一次的外循环执行一次,依旧内循环必须执行完全直至跳出内循环,再进行下一次的外循环。按照这种方式,直至跳出外循环,完成整个循环
eg:
<script>
//这部分代码运行完,外循环1次内循环运行10次,则输出的K值为100
var k=0;
for( var i=1;i<=10;i++)
{
for( var j=1;j<=10;j++){
k++;
}
}
console.log(k)
</script>
练习4:输出100以内的所有素数
<script>
//输出100以内所有的素数
console.log('100以内所有的素数')
for( var i=2;i<=100;i++)//外循环
{
for(var j=2;j<i;j++)//内循环判断当前的j是否为素数
{
if(i%j == 0)
{
break;
}
}
if(j>=i){
console.log(i)
}
}
</script>