今天说一下JS中for语句的循环嵌套。
for语句是JS中十分重要的循环语法。
for(表达式1;表达式2;表达式3){
for(表达式4;表达式5;表达式6){
执行语句块儿
}
}
这是嵌套写法的基本结构,首先要了解他的执行顺序是什么,才能更好地了解嵌套原理。
顺序:
表达式1 > 表达式2 > 表达式4 > 表达式5 > 执行语句块儿 > 表达式6 > 表达式3 > 表达式1。
然后开始循环。
这就是for语句的嵌套。十分重要,初学者或者自学者需要多练,多理解。
为了让大家更好地理解for循环嵌套的工作原理,写几个常见的小demo。
demo1: 1-100的累加求和?
<script>
//累加求和
var sum=0;
for(var i=0;i<=100;i++){
sum+=i;
}
console.log(sum);
</script>
输出结果为:5050;
这是基本的for循环语句没有嵌套。如果可以理解就开始嵌套。
demo2: 1-100之间的素数的判断和输出?
for(var i=2;i<=100;i++){
var bool=true;
for(var j=2;j<i;j++){
if(i%j==0){
bool=false;
break;
}
}
if(bool==true)console.log(`${i} 是素数`);
}
demo3:输出一个三角形?
for(var i=1;i<=5;i++){
for(var j=1;j<=i;j++){
document.write("* ");
}
document.write(`<br>`);
}
demo4:随机输出一个行数不确定的等腰三角形?这个是三角形的小提高。
var m=parseInt(Math.random()*(20+1-5)+5);//生成随机数
for(var i=1;i<=m;i++){ //行数的循环
for(var k=0;k<m-i;k++){ //生成对应的空格数量
document.write(` `);
}
for(var j=1;j<=i*2-1;j++){ //生成*号
document.write(`* `);
}
document.write(`<br>`);
}
document.write(`行数:${m}<br>`);//打印有几行
每一次刷新页面都会随机生成一个数,等腰三角形的行数也会随之变化(这里我的显示不是等腰三角形,是我符号有问题,你们可以换成其他符号。)
demo5:输出乘法口诀表?
for(var i=1;i<=9;i++){
for(var j=1;j<=i;j++){
document.write(`${j}*${i}=${i*j} `);
}
document.write(`<br>`);
}
最后这个例子也算是程序中十分经典的了,需要理清楚他们的关系,用一个方程组解出来:
demo6:百钱百鸡,公5元一只,母3元一只,小1元3只,一共一百元,买一百只鸡,每种鸡都得有。
for(var x=3;x<100;x+=3){
for(var g=1;g<100;g++){
if(x+g<100 && x/3+5*g+3*(100-x-g)==100){
document.write(
`公鸡:${g}只
母鸡:${100-x-g}只
小鸡:${x}只 <br>`
);
}
}
}
其中 “ X ” 是代表小鸡有几个, “ g ” 代表公鸡有几个。