for 循环语法和执行流程 | 学习笔记

简介: 快速学习 for 循环语法和执行流程

开发者学堂课程【Go 语言核心编程 - 基础语法、数组、切片、Map: ffor 循环语法和执行流程】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/625/detail/9574


for 循环语法和执行流程

目录:

一、基本语法

二、For 循环执行流程分析

 

一、基本语法

1、语法格式

for 循环变量初始化;循环条件;循环变量迭代{

循环操作(语句)

}

2、说明 for 循环四要素:

对 for 循环来说,有四个要素

要素1:循环变量初始化,也就是说需要有循环变量然后进行初始化。

要素2:循环条件,循环条件会判断循环是否继续执行。

要素3:循环操作(语句),也叫循环体,循环体就是要具体做的事情,完成的功能是什么。就像上个案例讲的 fmt.Println(“你好,尚硅谷”,i) 就是循环操作。

要素5:循环变量迭代

3、for 循环执行的顺序说明

(1)第一步首先执行循环变量的初始化,比如初始化 i:=1

(2)第二步执行循环条件的判断,比如判断 i<= 10

(3)如果循环条件为真,就执行循环体的循环操作:比如 fmt.Println(“...”)

(4)继续再执行循环变量迭代,比如 i++

(5)执行完后又反复执行 2,3,4 步骤,直到循环条件为假 False ,就退出 for 循环

可能这样讲解后还是不清晰,所以下面再次进行流程图的分析。

 

二、For 循环执行流程分析

1、For 循环的流程图

image.png

说明:

首先代码从最上面开始执行,进行变量初始化,放到之前的分析的话就是 i=1,执行完后进行条件的判断,如果为真就执行循环操作,只要循环条件不为假,就会一直循环下去,直到循环条件为假,就为 Flase 才会跳出循环,for 循环结束后如果下面还有代码就继续执行,没有代码就结束程序。

2、对照代码分析 for 循环的执行过程

下面将根据如图的代码进行讲解代码的执行和内存的变化。在图中假设一个内存区,一个终端区,终端就是控制台。

image.png

如果代码从 for 开始启动,首先把代码要素提取出来,分别是 i:=1 变量的初始化,i<=10 是循环条件,fmt.Println 是循环执行语句,i++ 是循环变量的迭代。然后执行语句 i:=1,则会有一个变量i在内存中赋值为 1,第一句话就执行完了。然后执行判断 i<=10,如果 i<=10 为真就执行下面的语句 Println,这时 i=1,则会在终端输出“你好,尚硅谷 1”,第二步执行完后执行 i++,而内存中 i 的赋值则为 i[2],紧接着再进行判断,这时判断i仍然小于等于 10,然后再执行 Println 语句,这时再控制台会输出第二句“你好,尚硅谷 2”,执行完后又执行 i++,于是 i=3,以此类推不停的走,直到输出“你好,尚硅谷 9”,输出后紧接着就会进行 i++,进行判断i仍然小于等于 10,则再进行输出“你好,尚硅谷 10”,输出后再进行 i++,然后内存中 i=11,再继续进行判断时,i=11 大于 10,于是进行退出,所以此时就跳出了 for 循环,这里要注意结束 for 循环后 i 是等于 11 的,所以得出结论:当 for 循环结束后i的值是一定是大于 10 的,不大于 10 的话会一直循环。这一点非常重要,要理解,下面输出 i 的值进行验证:

如果代码如下:

for i:= 1; i < = 10; i++{

fmt.Println(“你好,尚硅谷”,i)

}

fmt.Println(“i=”,i)

}

则会出现报错,因为变量 i 是在 for 循环进行定义的,因此 i 的作用域只能在 for 循环中有效,出了这个 for 循环i就是无效的,所以此时会报错 undefined:i,因此如果要进行测试输出的话,就要把 i 定义到 for 循环外,此时再进行输出,运行程序。

代码为:

i:= 1

for; i < = 10; i++{

fmt.Println(“你好,尚硅谷”,i)

}

fmt.Println(“i=”,i)

}

运行结果:
D:\goproject\src\go_code\chapter05\fordemo>go run main .go

image.png

相关文章
|
小程序 开发工具 开发者
小程序vant-weapp-商品卡片列表
小程序vant-weapp-商品卡片列表
505 0
|
算法 Python
Python算法——广度优先搜索
Python算法——广度优先搜索
501 0
|
5月前
|
机器学习/深度学习 文字识别 安全
微信加人频繁怎么快速解除?
微信加人频繁限制的技术分析与解决方案 1. 微信加人限制机制解析
|
监控 网络协议 安全
|
9月前
|
IDE 程序员 开发工具
只用正版!教你5个方法,白嫖JetBrains家族的所有产品,包含:IntelliJ IDEA、PyCharm、WebStorm、CLion、Rider
程序员晚枫分享了5种官方认证的免费使用JetBrains家族产品的方法,包括内容创作者计划、开源项目支持、教育许可证、用户组支持和开发者认可计划。这些方法帮助个人开发者与小型团队合法获取强大开发工具,如IntelliJ IDEA、PyCharm等,降低开发成本,提升效率。同时提醒大家遵守使用规范,尊重知识产权。
1679 13
|
数据可视化 数据挖掘 项目管理
打破协作壁垒,Excel多人协同编辑工具带来翻天覆地的变化!
在现代办公中,团队协作和信息共享至关重要。Excel的多人协同编辑功能显著提升了工作效率,避免了版本冲突和重复劳动。市场上的Google Sheets、Airtable、板栗看板和Zoho Sheet等工具也提供了类似功能。以其清晰的界面和强大的数据分析能力,特别适合项目管理和进度追踪,帮助团队高效协作,达成目标。
|
存储 算法 C语言
数据结构基础详解(C语言):单链表_定义_初始化_插入_删除_查找_建立操作_纯c语言代码注释讲解
本文详细介绍了单链表的理论知识,涵盖单链表的定义、优点与缺点,并通过示例代码讲解了单链表的初始化、插入、删除、查找等核心操作。文中还具体分析了按位序插入、指定节点前后插入、按位序删除及按值查找等算法实现,并提供了尾插法和头插法建立单链表的方法,帮助读者深入理解单链表的基本原理与应用技巧。
2465 6
|
C语言
C语言取整方法详解
C语言取整方法详解
3173 0
|
程序员 流计算 Docker
Flink程序员开发利器本地化WebUI生成
Flink程序员开发利器本地化WebUI生成
473 0
|
Java 关系型数据库 MySQL
Springboot+vue实现前后端分离智能化考试系统
Springboot+vue实现前后端分离智能化考试系统
188 0