for循环
for(循环变量的初始值;循环条件;循环变量的增值){
循环体,就是循环要执行的代码
}
对循环条件的理解,是变量满足循环条件的时候,才会执行 循环体中获得代码
只有循环结束,循环后面的代码才能执行
一、执行过程
- 首先判断循环变量的初始值,是否满足循环条件
- 如果满足循环条件,则执行循环体中的代码
- 循环体中代码执行完毕,然后执行循环变量的增值操作
- 判断循环变量的当前值,是否满足循环条件
- 在下一次循环中,依次执行 2 3 4 步骤
- 直到循环变量的当前值 不满足 循环条件,跳出当前循环
let sum=0;
for(let a=0;a<5;a++){
sum+=a;
}
console.log(sum);
100内的偶数和
//方法1
let sum1=0;
for(let n=1;n<=100;n++){
if(n%2==0){
sum1+=n;
}
}
console.log(sum1);
//方法2
let sum2=0;
for(let m=0;m<=100;m+=2){
sum2+=m;
}
console.log(sum2);
- continue 当在循环体中执行continue之后,他后面的所有代码都不执行,直接跳出当前循环,执行下一次循环
- break 当在循环体中执行break之后,直接终止当前for循环
for(let m=0;m<5;m++){
if(m%2==0){
continue;//停止当前一次循环,直接进入下一次循环
}
console.log(m);
}
// break
for(let m=1;m<10;m++){
if(m%3==0){
break;//终止当前for循环
}
console.log(m);
}
创建两个input 输入两个数 求最大公约数
数字1:<input type="number" id="inp1">
数字2:<input type="number" id="inp2">
<button id="btn">求两个数的最大公约数1</button>
<button id="btn1">求两个数的最大公约数2</button>
最大公约数:<input type="number" id="inp3">
let inp1=document.getElementById('inp1');
let inp2=document.getElementById('inp2');
let inp3=document.getElementById('inp3');
let btn=document.getElementById('btn');
let btn1=document.getElementById('btn1');
//方法1
btn.onclick=function(){
let v1=Number(inp1.value);
let v2=Number(inp2.value);
//console.time('') 测试运行时间
console.time('时间');
let v=0;
for (let n=1;n<=v1&&n<=v2;n++) {
if(v1%n==0&&v2%n==0){
console.log(n);
v=n;
}
}
inp3.value= v;
console.timeEnd('时间');
};
//方法2
btn1.onclick=function(){
let v1=Number(inp1.value);
let v2=Number(inp2.value);
//求出最小值
let min = v1>v2?v2:v1;
for(let n=min;n>=0;n--){
if(v1%n==0&&v2%n==0){
inp3.value=n;
console.log('最大公约数:'+n);
break;
}
}
}
二、奇葩for循环
-
正常for循环的写法
for(let i=0;i<10;i++){ console.log(i); }
-
没有初始值
let k=0 for(;k<10;k++){ console.log(k); }
-
没有初始值和判断是否满足循环条件
如果 for 循环中没有判断条件,那么他的判断条件在循环体内部,并且需要开发者手动书写跳出循环的操作,因此不会主动跳出循环
let m=0; for(;;m++){ //code if(m<10){ console.log(m); }else{ break; } }
-
没有初始值,没有判断条件,没有递增
let n=0; for(;;){ if(n<10){ console.log(n); n++;//递增 }else{ break; } }
-
判断条件具有多个
如下,具有i<6,j<20 两个条件,那么只有最后一个条件起到了判断条件的作用,其他判断条件作废
for(let i=0,j=0;i<6,j<20;i++,j++){ sum=i+j; }
三、循环嵌套
//外层控制的是行
for(let i=0;i<5;i++){
//内层控制的是列
for(let k=0;k<=i;k++){
document.write(k);
}
document.write('<br/>');
}
// 99乘法表
document.write('<table border=1 width="600">')
for(let i=1;i<=9;i++){
document.write('<tr>');
for(let j=1;j<=9;j++){
if(j<=i){
document.write('<td>'+i+'x'+j+'='+i*j+'</td>');
}
else{
document.write('<td></td>');
}
}
document.write('</tr>');
}
document.write('</table>')