【JavaScrip】for循环

news2024/11/16 12:05:02

文章目录

    • for循环
      • 案例1:两数相加
      • 案例2:绘制九九乘法表
      • 案例3:水仙花数
      • 案例4:绘制菱形
      • 案例5:计算表达式的结果
    • break和continue

for循环

for循环理解成循环的一种简洁(结构)的写法.

语法结构:
for(初始化;限制条件;变量值的改变){
满足条件循环体
}

  1. 初始化:允许多条语句,中间逗号分割。
  2. 限制条件:允许多条语句,中间逗号分割,重点是谁才能真正的控制限制条件,根据代码执行的顺序,后面的条件起到最终的控制作用。
  3. 变量值的改变:允许多条语句,中间逗号分割。

案例1:两数相加

for (var i = 1, j = 1, sum = 0; i <= 5, j <= 10; i++, j++) {
      sum = i + j;
  }
  // 分析执行的顺序
  // 第一步:执行初始化,执行一次 var i = 1, j = 1, sum = 0;
  // 第二步:执行限制条件   i <= 5, j <= 10;
  // 第三步:满足条件,执行循环体 sum = i + j;
  // 第四步:执行变量的改变 i++, j++
  // 继续执行第二步,执行第三步,继续回到第四步,继续执行第二步,执行第三步,执行第四步......

  // 上面的循环结束的时候,下面的值是多少?
  console.log(i); //11
  console.log(j); //11
  console.log(sum); //20   i和j的最后一次有效值都是10, -->

案例2:绘制九九乘法表

对比while和for循环结构上面的区别

// while循环
document.write('<table border=1>');
    var i = 1;
    while (i <= 9) { //i:1-->9
        document.write('<tr>');
        var j = 1;
        while (j <= i) { //重点区域:i确定第几行,j刚好和i有一个关联,就是i第几行,j循环几次   j:1-->9
            document.write('<td>' + j + 'x' + i + '=' + (i * j) + '</td>');
            j++;
        }
        document.write('</tr>');
        i++;
    }
    document.write('</table>'); 



// for循环改写
document.write('<table border=1>');
    for (var i = 1; i <= 9; i++) {
        document.write('<tr>');
        for (var j = 1; j <= i; j++) {
            document.write('<td>' + j + 'x' + i + '=' + (i * j) + '</td>');
        }
        document.write('</tr>');
    }
    document.write('</table>');

案例3:水仙花数

1.水仙花数。
水仙花数一般都是由三位数字组成,特点是当前三位数刚好等于每一位数字的立方和。
153 = 1^3 + 5^3 + 3^3

思路:
将中间的计算过程给循环,抓住条件
比如当前的数字是num,将num的个十百位拿到(a,b,c)
得到下面的条件
num === a * a * a + b * b * b + c * c * c
// 案例:获取100-999之间所有的水仙花数
    // 第一步:循环获取数字
    for (var num = 100; num <= 999; num++) {
        // 将num的个十百位拿到(a,b,c)
        var a = parseInt(num / 100); //百
        var b = parseInt(num % 100 / 10); //十
        var c = num % 10; //个
        if (num === a ** 3 + b ** 3 + c ** 3) {
            console.log(num);
        }
    }

案例4:绘制菱形

// 利用*绘制图形
    // 1.三角形
    for (var i = 1; i <= 10; i++) { //i循环一次,j循环的次数同步i
        for (var j = 1; j <= i; j++) {
            document.write('*');
        }
        document.write('<br>');
    }

    // 2.三角形,菱形
    for (var i = 1; i <= 10; i++) { //i循环一次,j循环的次数同步i
        for (var k = 10; k >= i; k--) { //反向循环,逐渐减少的空格&nbsp;
            document.write('&emsp;');
        }
        for (var j = 1; j <= 2 * i - 1; j++) { //逐渐增加的星号  i=1/j=1  i=2/j=3  i=3/j=5
            document.write('帅');
        }
        document.write('<br>');
    }
  	for (var i = 1; i <= 10; i++) {
        for (var k = 1; k <= i; k++) {
            document.write('&emsp;');
        }
        for (var j = 1; j <= 2*(10 - i)+1 ; j++) {
            document.write('帅');
        }
        document.write('<br>');
    }

在这里插入图片描述

案例5:计算表达式的结果

1-1/2+1/3-1/4+1/5-.....+1/100的结果

分析:
分子:1
分母:1->100 循环
符号:一负一正

for (var fz = 1, fm = 1, sum = 0; fm <= 100; fm++) {
        sum += fz / fm; //0 + 1/1 - 1/2 + 1/3
        fz = -fz; //负负得正
    }
    console.log(sum);

break和continue

break:结束整个循环,提升性能


    for (var i = 1; i <= 10; i++) {
        if (i === 5) {
            break;
        }
        console.log(i); //1,2,3,4
    }

  

continue:结束这一次循环,继续下一次的循环。

    for (var i = 1; i <= 10; i++) {
        if (i === 5) {
            continue;
        }
        console.log(i); //1,2,3,4,6,7,8,9,10
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/96936.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue封装背景知识小插曲之插槽slot的用法

vue封装背景知识小插曲之插槽slot的用法一 什么是插槽slot&#xff0c;都可以干啥&#xff1f;二 常见的插槽用法一 什么是插槽slot&#xff0c;都可以干啥&#xff1f; 直白点说就是子组件使用<slot> 先占了个地方&#xff0c;然后当父组件使用子组件的时候&#xff0c;…

第十三章 半监督学习

13.1 未标记样本 事实上&#xff0c;未标记样本虽未直接包含标记信息&#xff0c;但若它们与有标记样本是从同样的数据源独立同分布采样而来&#xff0c;则它们所包含的关于数据分布的信息对建立模型将大有裨益。下图给出一个直观的例示。若仅基于图中的一个正例和一个反例&am…

Next.js项目部署,使用Nginx和pm2

概述 只有一台服务器&#xff0c;所以上图服务都都在一个云服务器上。其中Nginx 分别在用户和Next服务之间代理、在Next和后台之间代理。 常规的前台页面不需要这样做&#xff0c;例如Vue中直接把build之后的dist文件拷贝到nginx的html目录并配置nginx指向即可&#xff0c;但是…

Vue的底层原理

如何追踪变化 当你把一个普通的 JavaScript 对象传入 Vue 实例作为 data 选项&#xff0c;Vue 将遍历此对象所有的 property&#xff0c;并使用 Object.defineProperty 把这些 property 全部转为 getter/setter。 这些 getter/setter 对用户来说是不可见的&#xff0c;但是在…

RK3588平台开发系列讲解(GPIO篇)配置GPIO需要了解的概念

平台内核版本安卓版本RK3588Linux 5.10Android12🚀返回专栏总目录 文章目录 一、 GPIO(通⽤输⼊输出)二、IOMUX(输⼊输出复⽤)三、PULL(端口上下拉)四、DRIVE-STRENGTH(端口驱动强度)五、 SMT(端口斯密特触发器)沉淀、分享、成长,让自己和他人都能有所收获!😄 …

SAP Gateway 在开发系统和生产系统上的缓存控制

SAP Gateway 元数据缓存可以启用和禁用&#xff0c;并且在非生产系统中默认停用。 我们推荐以下缓存设置&#xff1a; 开发系统 应该禁用 SAP Gateway 元数据缓存&#xff0c;以便始终获取最新的元数据&#xff08;默认设置&#xff09;。 OData 通道应用程序应在其模型提供…

UNIAPP实战项目笔记53 登录的前端和后端nodejs对接以及写后端接口和接口文档

UNIAPP实战项目笔记53 登录的前端和后端对接以及写后端接口和接口文档 实际案例图片 输入手机号或用户名登录页面 代码 login.vue页面 <template><view class"login"><swiper vertical"true" style"height: 100vh;"><swi…

VIM编辑器初学者用法指南——vim中无法使用冒号更改Ubuntu的输入法解决

VIM编辑器初学者用法指南一、vim打开文件&#xff1a;二、vim编辑文件&#xff1a;三、退出编辑模式四、保存文件并退出Vim编辑器Vim编辑器是Unix系统最初的编辑器&#xff0c;内置有两种操作模式:普通模式和插入模式。 普通模式&#xff1a;执行非内容编辑类的保存、退出等指令…

基于JAVA和MYSQL的图书馆座位管理系统的设计与开发

开发工具(eclipse/idea/vscode等)&#xff1a; 数据库(sqlite/mysql/sqlserver等)&#xff1a; 功能模块(请用文字描述&#xff0c;至少200字)&#xff1a; 11-11管理员功能模块 公告管理&#xff1a;可以对馆内开放时间、意外情况或者其他安排在网上进行发布公告&#xff0c;也…

【Redis-10】Redis集群的实现原理(Redis Cluster)

Redis集群是Redis提供的分布式数据库方案&#xff0c;通过分片来进行数据共享&#xff0c;实现复制和故障转移的功能。 1. Redis集群节点 一个Redis集群由多个节点组成&#xff0c;多个节点通过命令连接&#xff0c;由独立状态转为集群状态&#xff0c;命令是cluster meet <…

C51——电动车简易防盗系统

这是电动车简易报警器信号电路 #include "reg52.h" sbit switcher P1^1; sbit D0_ON P1^2; sbit D1_OFF P1^3; sbit vibrator P1^4; void Delay3000ms() //11.0592MHz { unsigned char i, j, k; //_nop_(); i 22; j 3; k 227; …

生物素-双硫键-叠氮化物Biotin-SS-Azide CAS1620523-64-9 简介

名称&#xff1a;Biotin-SS-azide Azide-SS-biotin Azide-C2-SS-C2-biotin 是一种可降解 (cleavable) 的 ADC linker&#xff0c;可用于合成抗体偶联药物(ADC)。叠氮化物-SS-生物素是一种可裂解的生物素化试剂&#xff0c;用于使用点击化学标记含炔烃的生物分子。叠氮基与炔烃…

Mycat(2):mysql的集群搭建

MyCat的环境演示需要使用mysql集群 &#xff0c;下面先搭建mysql的环境 1 集群搭建概述 1.1 是什么 集群&#xff08;cluster&#xff09;技术是一种较新的技术&#xff0c;通过集群技术&#xff0c;可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收…

记一次新装的SQLServer本地无法访问的处理过程

本机新装的SQL Server连接不上, 首先尝试使用 计算机名\实例名 Windows 身份验证 的形式登录, 例如:Dell-WorkCenter\MSSQL2017 如果使用 计算机名\实例名 的形式可以登录, 但使用127.0.0.1或者本机IP地址无法登录的话, 有可能是Named Pipes 与 TCP/IP 协议没有启用, 开…

图书馆借阅数据分析系统设计与实现

开发工具(eclipse/idea/vscode等)&#xff1a; 数据库(sqlite/mysql/sqlserver等)&#xff1a; 功能模块(请用文字描述&#xff0c;至少200字)&#xff1a; 网站前台&#xff1a;关于图书馆、帮助信息、图书资讯、图书类型、图书信息 管理员&#xff1a; 1、管理&#xff1a;关…

大数据- 初探MapReduce

一、MapReduce编程实例——词频统计实现 启动hadoop服务 1、准备数据文件 &#xff08;1&#xff09;在虚拟机上创建文本文件 创建wordcount目录&#xff0c;在里面创建words.txt文件 &#xff08;2&#xff09;上传文件到HDFS指定目录 创建/wordcount/input目录&#…

设计模式之桥接模式

bridge design pattern 桥接模式的概念、桥接模式的结构、桥接模式的优缺点、桥接模式的使用场景、桥接模式的实现示例、桥接模式的源码分析 1、桥接模式的概念 桥接模式&#xff0c;即将抽象和实现分离&#xff0c;使他们可以独立变化。它是用组合关系来代替继承关系实现的&a…

赫夫曼树 | 实战演练

&#x1f388; 作者&#xff1a;Linux猿 &#x1f388; 简介&#xff1a;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我&#xff0c;关注我&#xff0c;有问题私聊&#xff01; &…

关于动漫的HTML网页设计:期末前端web大作业——海贼王基地(6个页面)

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置&#xff0c;有div的样式格局&#xff0c;这个实例比较全面&#xff0c;有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 精彩专栏推荐&#x1f4…

QT—5种标准对话框使用详解

对话框是 GUI 程序中不可或缺的组成部分。一些不适合在主窗口实现的功能组件都必须放在对话框中设置。对话框通常会是一个顶层窗口&#xff0c;出现在程序最上层&#xff0c;用于实现短期任务或者简洁的用户交互。所谓标准对话框&#xff0c;是 Qt 内置的一系列对话框&#xff…