-
2021-04-14 20:44:48
01- for循环:用户输入数据求指定数字之间的总和
<script> //需求:用户决定输出的次数,输出从0-用户指定的数字之间的所有整数 let num = prompt('请输入数字:') let res = 0; for (let i = 0; i < num; i++) { res += i } console.log(res); </script>
02-for 循环:用户指定区间
<script> let num1 = prompt('请指定起始值:'); let num2 = prompt('请指定结束值:'); num1 = parseInt(num1) num2 = parseInt(num2) for (let i = num1; i < num2; i++) { document.write(i) } </script>
03-for 循环 最大最小值案例
<script> // 需求:用户输入5个数,求出用户输入数字的最大值 // 用户输入数字的行为:要重复5次:用循环解决,循环一次输入1个数 // 如何保证拿到最大值?定义一个 变量 保存最大值,用户输入的数字与变量进行PK // 赢了:用户输入是最大值,将用户输入的数据放到变量(修改擂主) // 输入:不管 // 1. 定义一个擂主:保存最大值 // 2. 打擂:5次 let max = Infinity, min = -Infinity; //定义两个最大最小变量值 for (let i = 1; i <= 5; i++) { let count = +prompt(`请输入第${i}次的数值`) if (count > min) { //最大值交换 min = count } } document.write(`您输入最大的值为${min}`) </script>
04-for 循环 利用 break 猜数字大小
<script> // 猜数字游戏 // 1. 随机生成0-100之间整数 let rand = Math.ceil(Math.random() * 100) // 2. 用户猜测:不确定次数,循环:死循环 // 2.1 获取用户输入数字 for (; ;) { let user = prompt('请输入0-100的数字') // 2.2 比较:三种情况(太大了,太小了,猜中了:break) if (user > rand) { alert('你丫的数值太大了') } else if (user < rand) { alert('丫的太小了') } else { alert('你总算猜对了') break; } } </script>
05-动态循环 树状图
<style> .box { width: 1200px; height: 350px; border: 1px solid red; margin: 100px auto; display: flex; justify-content: space-evenly; align-items: flex-end; } .box>div { width: 200px; height: 280px; } </style> <script> // 1. 写好静态结构:分析 // 1.1 外部大div样式:弹性布局或者动态布局 // 1.2 通过静态写死1个到2个柱子:找出柱子宽度的规律(定位需要偏移) // 1.3 注释静态html:找出样式中固定部分(写到类中)和变化部分(JS动态生成到行内样式) // 2. 接收用户输入的柱子数量 let user = prompt('请输入柱子数量:'); // 3. 计算柱子的宽度 // 4. 输出大盒子的前半部分(添加类样式) // 5.4 输出柱子:嵌入行内样式,包括宽度、高度、颜色(rgb) //输出大盒子开启 document.write('<div class="box">'); for (let i = 1; i <= user; i++) { // 5. 循环动态生成小柱子:一次生成1个柱子 let post = 1200 / (2 * user + 1); // 5.1 宽度固定 // 5.2 高度随机 let height = Math.ceil(Math.random() * 280); // 5.3 颜色随机 let a = Math.ceil(Math.random() * 200); let b = Math.ceil(Math.random() * 200); let c = Math.ceil(Math.random() * 200); document.write(` <div style="width:${post}px;height:${height}px;background-color: rgb(${a}, ${b}, ${c});"> </div> `) } // 6. 输出大盒子的关闭部分 document.write('</div>'); </script> </head> <body> <!-- <div class="box"> <div></div> </div> --> </body> </html>
双重for循环
<script> let num = ''; for (let i = 1; i <= 3; i++) { num += '💕'; console.log(num); console.log(`这是外层循环第${i}次`); for (let j = 1; j <= 3; j++) { console.log(`这是里层循环第${j}次`); } } </script>
更多相关内容 -
python日记(二):密集计算加速(双重for循环为例)
2021-01-20 02:06:38前情提要:python在处理高时间复杂度的双重for循环时候效率低,而多线程又不适合于计算密集的任务提速。昨天睡之前让电脑自己运行17000*17000的计算,结果跑了19000秒。 因此尝试寻求为python提速的解决方案。在那... -
双重for循环
2022-03-24 12:41:27平常我们在使用循环的时候,只会用到一个for进行循环,今天介绍一下双重for循环。 一. 一个for循环执行的流程 假设我要打印一百次我爱你。 循环语句的语法想必我们已经非常的熟练了。 在复习一遍它的语法: for...平常我们在使用循环的时候,只会用到一个for进行循环,今天介绍一下双重for循环。
一. 一个for循环执行的流程
假设我要打印一百次我爱你。
循环语句的语法想必我们已经非常的熟练了。
在复习一遍它的语法:
for(初始值,判断条件,累计器){ 要循环的内容 }
例子:
for (let i = 0; i < 100; i++) { console.log('我爱你'); }
说明:就相比于这个来说,其实i的值是0,判断条件是i<100,就去执行循环体里面的内容,后面的累加器每次都会加上1, 如次这样会执行100次循环体里面的内容,当i=100的时候还会去打印"我爱你",这个时候,继续会在累计器里面进行加1,变成101, 这个时候就不会去执行循环体的内容,跳出循环。
二. 双重for循环执行的流程
如果两个循环嵌套,又会发生什么呢?
例子:
for (let i = 0; i < 9; i++) { for (let j = 0; j < 10; j++) { console.log('我爱你'); } }
大家可以猜一下,会进行多少次打印。
可以看到,控制台里面总共打印了90次。
接下来我们一起分析一下它的执行流程:
从进入第一次循环开始:
i=0; 执行循环体的内容,也就里面嵌套的一个for循环。
执行嵌套的子循环:
for (let j = 0; j < 10; j++) { console.log('我爱你'); }
j=0,j<10,打印里面的内容:我爱你
j=1,j<10,打印里面的内容:我爱你
j=2,j<10,打印里面的内容:我爱你
j=3,j<10,打印里面的内容:我爱你
j=4,j<10,打印里面的内容:我爱你
j=5,j<10,打印里面的内容:我爱你
j=6,j<10,打印里面的内容:我爱你
j=7,j<10,打印里面的内容:我爱你
j=8,j<10,打印里面的内容:我爱你
j=9,j<10,打印里面的内容:我爱你
j=10,j<10, 此时已经是不成立的,因此跳出循环。
在单纯地j的循环中打印了10次循环体里面的内容。
思考一个问题结束了内部嵌套的子循环会干什么?
答:
此时的i会继续返回到外层的for循环上,进行+1,此时的i=1,1<9又回执行内部的for循环。
j=0,j<10,打印里面的内容:我爱你
j=1,j<10,打印里面的内容:我爱你
j=2,j<10,打印里面的内容:我爱你
j=3,j<10,打印里面的内容:我爱你
j=4,j<10,打印里面的内容:我爱你
j=5,j<10,打印里面的内容:我爱你
j=6,j<10,打印里面的内容:我爱你
j=7,j<10,打印里面的内容:我爱你
j=8,j<10,打印里面的内容:我爱你
j=9,j<10,打印里面的内容:我爱你
j=10,j<10, 此时已经是不成立的,因此跳出循环。
这样的一个循环的过程。
外层循环的结束时间
当i=9的时候就跳出循环。因为判断的条件是i<9。
因此可以得到一个结论就是:
前面执行了9次内部for循环的内容。
一次打印10次我爱你。
故:
9x10=90。
输出90次我爱你。
三重for循环执行的流程
我们从双重for循环的执行循序,来推断一下三重的for循环又是什么样子的呢?
for (let i = 0; i < 9; i++) { for (let j = 0; j < 10; j++) { for (let k = 0; j < 8; j++) { console.log('我爱你'); } } }
根据上面的双重for循环,我们来推断:
最内层:
一次打印8次我爱你
第二层:
会执行10次内部的for循环跳出循环。
最外层:
会执行9次第第二层的for循环跳出循环。
所以最终执行的结果是:
8x10x9=720。
四.思考一个问题。
循环嵌套的真正的意义是什么?
根据上面的for循环我们可以发现一个规律。
无论是双重for循环:
它都是先把内部的循环执行完然后,在去累加进行循环
每个for循环都应该有自己做的事。
五 .习题
(1)九九乘法表
var i, j; for (i = 1; i <= 9; i++) { document.write("<br>"); // i 为行的乘数,j 为列数 每一行打印完后换行 for (j = 1; j <= i; j++) { sum = i * j; document.write(i, "*", j, "=", sum, " "); // 使 "i" 和 "j" 能打印出来 } }
(2)我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
解:
设鸡翁为x,母为y,鸡雏为z。
5x+3y+1/3z=100;
x+y+z=100;
使用穷举法:
0<=x<=20;
0<=y<=33;
鸡雏:100-x-y-z;
代码:
for (var a = 1; a <= 20; a++) { //公鸡最多能买20只 for (var b = 1; b <= 33; b++) { //母鸡最多只能买33只 var c = 100 - a - b; //小鸡的数量可通过计算得出 if ((a + b + c == 100) && (a * 5 + b * 3 + c / 3 == 100)) { document.write('公鸡、母鸡、小鸡的数量分别是:' + a + ',' + b + ',' + c + '<br/>'); } } };
分析代码:
先去买公鸡,在去买鸡 剩下的就是小鸡,
判断的条件:
前提是买100只鸡, 后面是100钱。
输出的结果:
六.总结
什么时候会用到多重的for循环呢?
在进行匹配的时候,
例如在写99乘法表的时候,行和列的匹配
在百钱的习题中的匹配,然后通过if筛选出符合条件的结果
n重for循环呢,一样也是进行匹配。
-
双重for循环(嵌套for循环)
2021-10-13 16:20:32双重for循环就是在一个for循环里在嵌套另一个for循环,即两个循环嵌套,还有多重循环嵌套的情况,但用的比较少,一般常用的是两个循环嵌套,很少使用多重循环,因为for循环多了会导致代码执行的效率低,而且容易死机...什么是双重循环?
双重循环:我们从字面上理解它,就是有两个循环套在一起
详细解释
双重for循环就是在一个for循环里在嵌套另一个for循环,即两个循环嵌套,还有多重循环嵌套的情况,但用的比较少,一般常用的是两个循环嵌套,很少使用多重循环,因为for循环多了会导致代码执行的效率低,而且容易死机,多循环中的总循环次数是相乘的,嵌套几次后几何级数增长,因此通常情况下在循环多次嵌套时,我们是不推荐使用的。
说的再简单点就是,for循环的嵌套,跟我们之前的if嵌套一样
for(循环变量;循环条件;循环操作){ for(循环变量;循环条件;循环操作){ //代码块 } }
这就是双重for循环的框架
运行路径
外层循环一次,内层全部循环一次(外层循环一次,内层for循环全部执行完成再进行外层的一次循环)
难点
二重循环的难点是内层循环的循环条件,如何控制内层循环的次数
记住外层循环一次,内层循环全部的原则
举个例子,我外层循环定义循环3次,内层循环定义循环2次,每次输出一个“星号”,那么,将会输出几个“星号”呢?
答案是6次(2×3)
分析:- 外层循环第一次,里面循环完,也就是2次
- 外层循环第二次,里面又重新循环,循环完,还是2次
- 外层循环第三次,里面再次重新循环,又是2次
我们多说无益,来个实际操作
示例
打印以下图形,我们可以用上面提到的公式验证一下图形
*
* *
* * *
* * * *
* * * * *这个题目的代码,我先给出,然后分析
代码
public class Star{ public static void main(String[] args){ for(int i=1;i<=5;i++){ for(int j=1;j<=i;j++){ System.out.print("*"); } System.out.println(); } } }
我们看看这个图像有多少行? 总共有5行,也就是说我们需要循环5次打印才可以
外部循环
for(int i=1;i<=5;i++){ //循环块2 }
这个循环控制输出的行数,我们这里是5行“星号”,所以这个循环控制成5次
我们开始写里面的循环
内部循环
里面定义一个循环,变量为 jfor(int j=1;j<=i;j++){ System.out.print("*"); }
j 的初始值定义为1,并且j<=i (i也是累加,到5停止),它的循环次数也是循环5次,因为我们这个图像的最后一个输出是5颗“星号”,这里是循环输出了5颗“星号”,所以,j超出5必须停止循环
总体运行过程
到这,许多人会感到有点迷茫,不过没有关系,这是正常,我们好好看看它如何运行:
首先注意看变量:i=1、j=1、i<=5、j
循环运行变化
外层第一次循环: i为1时,开始第一次循环,开始运行里面的第 i(1)次循环,这时,里面的循环,j为1时,j<=i (此时i为1),所以会输出1颗“星号”
拆解代码:第一次外层循环
内层:for(int j=1;j<=1;j++){ System.out.print("*"); } System.out.println();
外层第三次、第四次、第五次与第二次一样,i不断累加,依次输出3颗“星号”、4颗“星号”、5颗“星号”
就不多演示了,还不懂的话,就看看拆解代码的内层循环的循环条件的变化
注意:System.out.print("*"): 是没有ln的,所以不会换行,于是内层循环的“星号”是横排叠加的
示例二
打印九九乘法表:
因为这个题目,和上面的代码以及原理一样,只是改变了一些内容,所以我就直接放代码了代码
public class Jjcfb { public static void main(String[] args) { for(int i=1;i<=9;i++){ for(int j=1;j<=i;j++){ System.out.print(j+"*"+i+"="+i*j+" "); } System.out.println(); } } }
九九乘法表一共有九行,所以外层限制行数为9,于是i=1;i<=9
内层还是j=1;j<=i
如果还不懂,可以用IDEA调试,慢慢摸索,这样记忆力更加深刻扩展
给大家放一个问题:这样用“*”输出一个菱形?
点击链接查看答案:双重for循环(嵌套for循环) - 小简博客 (janyork.com)
https://blog.janyork.com/index.php/archives/429/
-
双重for循环优化
2020-12-28 10:18:30双重for循环优化 双重for循环优化思想:主要是将某一层的数据转成map类型,用比较字段去map里面get,若拿到数据则匹配上了 由于是在云上开发,代码拿不下来(公司限制了),就只能截图了,希望读者将就着看。 ...双重for循环优化
双重for循环优化思想:主要是将某一层的数据转成map类型,用比较字段去map里面get,若拿到数据则匹配上了
由于是在云上开发,代码拿不下来(公司限制了),就只能截图了,希望读者将就着看。
-
JavaScript 双重for循环
2021-09-28 02:53:181. 双重 for循环概述; 很多情况下,单层 for 循环并不能满足我们的需求,比如我们要打印一个5行5列的图形、打印一个...例如在for循环语句中,可以再嵌套一个for循环,这样的for循环语句 我们称之为双重for循环 ... -
JavaScript 流程控制-循环之for 循环与双重 for 循环
2022-04-14 19:21:322、双重 for 循环 3、while 循环 4、do while 循环 5、continue brea 1、for 循环 for 循环主要用于把某些代码循环若干次,通常跟计数有关系。其语法结构如下: for(初始化变量; 条件表达式; 操作... -
用map代替双重for循环,stream流代替双重for循环
2021-11-29 11:01:49public class test { public static void main(String[] args) throws InterruptedException { List<Member> list1 = new ArrayList<>(); List<... for (int i = 0; i < 30000; i++) -
for循环-双重for循环
2020-11-30 08:50:44for循环-双重for循环 1 - 循环 1.1 for循环 语法结构 for(初始化变量; 条件表达式; 操作表达式 ){ //循环体 } | 名称 | 作用 | 初始化变量 | 通常被用于初始化一个计数器,该表达式可以使用 var 关键字声明... -
双重for循环及其案例
2021-12-11 09:49:40for(var i = 1; i<= 3; i++){ console.log('外层循环 i ',i); for(var j = 1; j<=2; j++){ console.log(i,'内层循环 j ',j); } } 案例一--九九乘法表 1x1=1 2x1=2 2x2=4 3x1=3 3x2=6 3x3=9 ... -
【JavaScript双重for循环题】
2022-03-20 08:08:24【JavaScript双重for循环题】 -
java中的双重for循环
2022-04-01 17:34:35代码块1所在的for循环时外层循环,代码块2所在的for循环时内层循环 当外层循环循环1次时 内层循环会循环1轮 即 int num = 1; int nums = 2; for(int i = 0;i<5;i++){ for(int j = 0 -
java 优化双重for循环
2022-04-07 13:40:43首先我们要有两个对象分别是 学生信息 和 学生住宿信息 class Student { //学生id private Integer studentUserId; //学生名称 private String name; } class Student { //学生id ... pri -
Java 双重 for 循环
2020-11-19 19:24:20双重for循环 在for循环语句中,可以再嵌套一个for循环,这样的for循环语句我们称之为双重for循环。 实例: 1.钟表时间: public static void main(String[] args) { for (int i = 1; i <= 12 ; i++) { System... -
c语言双重for循环流程图_for 循环和while循环区别
2020-10-21 22:13:33C语言提供了好几种循环结构,即while、for和do-while。汇编语言中并没有相应的指令存在,作为替代,将条件测试和跳转组合起来实现循环的效果。大多数汇编器根据一个循环的do-while形式来产生循环代码,即使在实际... -
程序跳出双重for循环汇总
2021-02-16 09:25:001、单重for循环的break 代码 @Test public void test1() { for (int i = 0; i < 7; i++) { if (i == 2) { break; } else { System.out.println("i=" + i); } } } 结果 2、单重for循环的cont -
vue 双重for循环
2021-05-26 13:38:37li v-for="(item,key) in appList" :key="key"> <img :src="item.icon" :alt="item.name" /> <p>{{item.name}}</p> <div> <span v-for="(tagItem,key) in item.tags" :. -
oracle的双重for循环
2021-04-30 11:19:42总结 以上是编程之家为你收集整理的oracle的双重for循环全部内容,希望文章能够帮你解决oracle的双重for循环所遇到的程序开发问题。 如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。 本图文... -
for和双重for循环的用法和案例举例
2020-08-16 15:02:237.1 for循环 for ( 初始化变量;条件表达式;操作表达式){ //循环体 } 1.初始化变量:就是用var 声明的一个普通变量,在循环(代码块)开始之前执行。通常用于计数器的使用。可以不写。 2.条件表达式 就是用来... -
java 解决双重for循环效率问题
2021-07-20 13:23:50解决双重for循环效率问题题目说明题解 题目说明 当拥有2个表时,订单表和物品表 时,订单表(客户名称,订单ID)和物品表(订单ID,物品名称)一个客户可以购买多个物品,但是他们的订单ID是唯一的,数据库中数据以... -
双重for循环理解
2021-01-16 19:36:30// for循环 import java.util.Scanner; public class test2{ public static void main(String[] args){ // 有一个变量 进入的条件 退出的机制 /*创建变量 判断是否满足条件 执行代码 变量加一 判断 执行 加一 知道不... -
双重for循环可以对数组去重
2021-09-28 11:50:36//双重for循环 for(i = 0;i < arr.length; i++){ for(j = i+1;j < arr.length; j++){ //如果数组中有两个数相等,这里用三位运算符 if(arr[i] === arr[j]){ //在第j个元素开始删除,删除1个元素。splice... -
JavaScript break 和continue 双重for 循环
2022-04-21 13:31:21break break语句用于终止某个循环,使程序跳到循环块外的下一条语句 在循环中位于break后的语句将不再执行 break 语句不仅可以用在for循环中,也可以用在其他循环中 ...双重for循环 ... -
python双重for循环案例-Python基础 之for循环嵌套实例
2020-11-11 14:19:13一、在控制台中输出以下字符样式:"""***************"...for r in range(3):#0 1 2for c in range(5):#01234 01234 01234print("*",end = "") #在一行输出print()... -
c语言双重for循环流程图_第九章、C语言循环之for
2020-11-20 17:42:35上一章我们讲了while和do...while循环,这一章我们来学习一下C语言中的另外一种循环结构:for循环。我们先来看一下for循环的结构:for(expression1;expression2;expression3){statement}在关键字for之后的圆括号中... -
双重for循环的常见练习题
2021-08-11 09:30:241.打印直角三角形。代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">...meta name="viewport" content="width=device-width, initial-scale=1.0">... . -
c语言双重for循环流程图_循环三巨头—之for,while与do while
2020-11-21 02:34:01C语言中的三种循环语言while、do……while、for,三种循环语句各有特点,用法也不尽相同。下面我们一一介绍。一:While语句While语句的基本形式是:while(判断语句){ 循环体}它的执行顺序是先进行逻辑判断,如果...