一、一个小需求

我想要打印10遍hello world,你想怎么编写呢?

	// 需求:打印10遍"hello world"fmt.Println("hello world")fmt.Println("hello world")fmt.Println("hello world")fmt.Println("hello world")fmt.Println("hello world")fmt.Println("hello world")fmt.Println("hello world")fmt.Println("hello world")fmt.Println("hello world")fmt.Println("hello world")

平常打印输出一个俩个没问题,那一旦要求100遍,1000遍怎么做呢?

go中进行打印10遍hello world,使用for循环

	// 循环for i := 0; i < 10; i++ {fmt.Println("hello world")}

二、for循环

一个for循环解决了上边的小需求,那怎么使用for循环呢

1. for循环结构体

	for 循环变量初始化;循环判断条件;循环变量迭代 {循环执行语句}

可以了解使用for,需要上边的四个要素:循环变量初始化;循环判断条件;循环变量迭代;循环执行语句

2. 循环四要素

  1. 循环初始化:声明在循环过程中,进行判断和变量迭代,进行控制循环次数
  2. 循环判断条件:为true时,进行循环体下一步;为false则结束循环
  3. 循环变量迭代:进行计算循环次数,一般使用变量累加进行计算
  4. 循环执行语句:TODO 我们待开发的功能

3. 循环四要素的执行顺序

  1. 第一步:循环初始化
  2. 第二步:循环判断条件(为true进行下边步骤)
  3. 第三步:循环执行语句
  4. 第四步:循环变量迭代
  5. 第五步:循环执行第二步–至–第四步 直到判断条件为false,退出循环

如果判断条件一直为true,那么该for循环,为死循环(开发过程需要禁止)

4. 尝试for

	// 需求:循环五次,并打印每次初始化值for i := 0; i < 5; i++ {fmt.Println("i = ", i)}//i =  0//i =  1//i =  2//i =  3//i =  4

三、for变体之while

go中没有while循环结构,但可以通过for进行变体,达到while功能的要求

	// 循环初始化var i int = 0// 循环判断for i < 5 {// 循环语句fmt.Println("i = ", i)// 循环迭代i++}//i =  0//i =  1//i =  2//i =  3//i =  4

结构体中,可以看出,如果把for换成while,是不是就是大家熟悉的while循环呢?

四、for变体之do…while

go中没有do…while循环结构,也可以通过for进行变体,达到do…while功能的功能

// 循环初始化var j int = 0for {// 循环语句fmt.Println("j = ", j)// 循环迭代j++// 循环判断if j >= 5 {break}}//j =  0//j =  1//j =  2//j =  3//j =  4

五、for循环遍历列表

使用range进行遍历序列的值

	var str = "hello world"for index, val := range str {fmt.Printf("下标index=%d, 遍历值val=%q\n", index, val)}//下标index=0, 遍历值val='h'//下标index=1, 遍历值val='e'//下标index=2, 遍历值val='l'//下标index=3, 遍历值val='l'//下标index=4, 遍历值val='o'//下标index=5, 遍历值val=' '//下标index=6, 遍历值val='w'//下标index=7, 遍历值val='o'//下标index=8, 遍历值val='r'//下标index=9, 遍历值val='l'//下标index=10, 遍历值val='d'

六、跳出语句

刚刚在变体do…while过程中,我们使用到了break,那么为什么要使用他,他有什么作用呢?

break、continue这俩个都是出现在循环结构体中,进行循环的跳出
break: 结束当前结构体循环
continue: 结束本次循环

	for i := 0; i < 10; i++ {if i%2 == 0 {continue}fmt.Println("i=", i)if i > 5 {break}}//i= 1//i= 3//i= 5//i= 7

可以看到,偶数循环过程中,进行了跳过处理,当i大于5的时候进行中断,当结果为7时,进行循环中断

本章讲了一些for循环的基本知识和for的几种变体使用

  1. 知道循环和使用
  2. 熟练使用for的几种变体
  3. 熟练使用break和continue

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习算法-K近邻算法-KNN

1. K近邻算法是什么&#xff1f; 定义&#xff1a; K近邻是一种基于实例的懒惰学习&#xff08;Lazy Learning&#xff09;算法&#xff0c;用于分类和回归任务。 核心思想&#xff1a;“物以类聚”——通过计算样本间的距离&#xff0c;找到目标点的最近K个邻居&#xff0c;…

基于vue框架的法律知识咨询普及系统gwuv7(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;用户,知识类型,律师,律师推荐,法律知识,新闻类型,法律新闻,咨询律师 开题报告内容 基于Vue框架的法律知识咨询普及系统开题报告 一、研究背景与意义 随着法治社会建设的深入推进&#xff0c;公众对法律知识的需求呈现爆发式增长。然而…

Netty 揭秘CompositeByteBuf:零拷贝优化核心技术

CompositeByteBuf 类 核心设计目标​​ ​​虚拟缓冲区​​&#xff1a;将多个 ByteBuf 合并为单一逻辑视图&#xff0c;减少数据复制。​​零拷贝优化​​&#xff1a;通过组合而非复制提升性能。​​引用计数管理​​&#xff1a;统一管理底层 ByteBuf 的生命周期。 核心成…

用css实现文字字体颜色渐变

用css实现文字字体颜色渐变 background-clip 是CSS3中新增的属性&#xff0c;可以用于指定背景图片或颜色的绘制范围。利用 background-clip 属性实现文字颜色从左到右、从绿到白的渐变效果&#xff1a; 代码如下&#xff1a; .gradient-color {background-image: linear-gr…

SpringBatch处理数据性能优化

SpringBatch的Step默认使用同步方式批量处理数据&#xff0c;也可以通过配置将读数改为同步&#xff0c;处理和写入改为异步方式。 1、同步处理Step SpringBatch的Step一般由ItemReader、ItemProcessor和ItemWriter组成&#xff0c;其中ItemProcessor是可选的。他的设计思路的…

【机器学习深度学习】前馈神经网络(单隐藏层)

目录 一、什么是前馈神经网络&#xff1f; 二、数学表达式是什么&#xff1f; 三、为什么需要“非线性函数”&#xff1f; 四、NumPy 实现前馈神经网络代码示例 五、 运行结果 六、代码解析 6.1 初始化部分 6.2 前向传播 6.3 计算损失&#xff08;Loss&#xff09; 6…

设计模式系列(08):创建型模式 - 原型模式

系列导读&#xff1a;完成创建型模式的学习&#xff0c;我们来看最后一个创建型模式——原型模式。它通过复制已有对象来创建新对象&#xff0c;是一种独特的创建方式。 解决什么问题&#xff1a;通过复制现有对象来创建新对象&#xff0c;而不是重新实例化。适用于对象创建成本…

区块链到底是什么?

区块链本质上是一种去中心化的分布式账本技术&#xff0c;具有以下核心特点&#xff1a; - 去中心化&#xff1a;没有中央管理机构&#xff0c;数据由网络中的多个节点共同维护&#xff0c;比如比特币网络中各个节点都保存着完整账本。 - 分布式存储&#xff1a;数据不是存在一…

系统架构设计师论文分享-论ATAM的使用

我的软考历程 摘要 2023年2月&#xff0c;我司通过了研发纱线MES系统的立项&#xff0c;该系统为国内纱线工厂提供SAAS服务&#xff0c;旨在提高纱线工厂的数字化和智能化水平。我在本项目中担任系统架构设计师&#xff0c;负责整个项目的架构设计工作。本文结合我在该项目中…

vue-28(服务器端渲染(SSR)简介及其优势)

服务器端渲染&#xff08;SSR&#xff09;简介及其优势 服务器端渲染&#xff08;SSR&#xff09;是现代网络应用的关键技术&#xff0c;特别是使用 Vue.js 等框架构建的应用。它通过在服务器上渲染初始应用状态来弥补传统单页应用&#xff08;SPA&#xff09;的局限性&#x…

工业电子 | 什么是SerDes,为何工业和汽车应用需要它?

重点内容速览&#xff1a; 1. 什么是SerDes&#xff1f; 2. ADI&#xff1a;私有协议的GMSL将向公有协议转变 3. TI&#xff1a;工业和汽车有两套SerDes解决方案 4. Microchip&#xff1a;推出通用协议SerDes芯片 5. 罗姆&#xff1a;主要针对汽车领域 6. 国产SerDes芯…

大事件项目记录4-用户接口开发-更新用户基本信息

4&#xff09;更新用户基本信息。 UserController.java&#xff1a; UserMapper.java&#xff1a; Update("update user set nickname #{nickname},email #{email},update_time #{updateTime} where id #{id}")void update(User user); UserServiceInterface…

Transformer结构--输入编码(BPE,PE)

在Transformer结构中&#xff0c;输入编码是模型处理文本数据的关键步骤&#xff0c;其中**BPE&#xff08;Byte Pair Encoding&#xff0c;字节对编码&#xff09;和PE&#xff08;Positional Encoding&#xff0c;位置编码&#xff09;**是两种重要的编码方式&#xff0c;它们…

Confluence-测试用例设计指导方法

测试经验知识库 典型的测试场景验证点各个项目有价值的经验和测试点 测试经验知识库 - 草稿测试用例执行量化指导建议 何时需要进行全量测试和如何定义和执行测试用例量的一些建议和标准 端对端&#xff08;E2E&#xff09;测试用例设计指导方案 在测试行业中&#xff0c;端到端…

浅析JVM

一、JVM运行流程 如图&#xff1a; JVM由四个部分构成&#xff1a; 1.类加载器 加载类文件到内存2.运行时数据区 写的程序需要加载到这里才能运行3.执行引擎 负责解释命令&#xff0c;提交操作系统执行4.本地接口 融合不同编程语言为java所用&#xff0c;如Java程序驱动打印…

多个 Job 并发运行时共享配置文件导致上下文污染,固化 Jenkins Job 上下文

基于 context.py 固化 Jenkins Job 上下文的完整方案&#xff0c;适用于你当前的工作流&#xff08;Python Jenkins Pipeline&#xff09;&#xff0c;解决&#xff1a; 多个 Job 并发运行时共享配置文件导致上下文污染&#xff1b;读取环境变量或 JSON 文件时被其他 Job 修改…

简木易支付系统 功能齐全,对接接口超多

简木易支付系统&#xff0c;作为一款引领行业潮流的卓越支付解决方案&#xff0c;依托先进的 PHP MySQL 技术架构精心打造。在开发过程中&#xff0c;它巧妙运用了功能强大的 ThinkPHP8 框架&#xff0c;完美融合前端主流技术 Vue、Element 以及 Layuiadmin&#xff0c;共同铸…

【软考高项论文】信息系统项目的人力资源管理

摘要 本文围绕信息系统项目的人力资源管理展开论述。以我在2024年参与的为大型国有企业构建供应链管理系统项目为例&#xff0c;阐述了项目人力资源管理的主要流程&#xff0c;包括规划、组建、建设和管理团队四个过程&#xff0c;以及所运用的工具和理论。同时&#xff0c;分…

【EI会议征稿】东北大学主办第三届机器视觉、图像处理与影像技术国际会议(MVIPIT 2025)

一、会议信息 大会官网&#xff1a;www.mvipit.org 官方邮箱&#xff1a;mvipit163.com 会议地点&#xff1a;辽宁沈阳 主办单位&#xff1a;东北大学 会议时间&#xff1a;2025 年 9 月 27 日-9 月 29 日 二、征稿主题 集中但不限于“机器视觉、图像处理与影像技术”等其…

从零开始的云计算生活——第二十三天,稍作休息,Tomcat

目录 一.故事背景 二.Tomcat概述 1、Tomcat介绍 2、Tomcat历史 二、Tomcat原理分析 1、Http工作原理 2、Tomcat整体架构 3、Coyote连接器架构 4、Catalina容器架构 5、Jasper处理流程 6、JSP编译过程 7、Tomcat启动流程 8、Tomcat请求处理流程 三、Tomcat安装与配…