当前位置:网站首页>golang for循环详解
golang for循环详解
2022-08-08 18:54:00 【学亮编程手记】
引入
【1】语法结构:
for 初始表达式; 布尔表达式; 迭代因子 {
循环体;
}
for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。for循环在第一次反复之前要进行初始化,即执行初始表达式;随后,对布尔表达式进行判定,若判定结果为true,则执行循环体,否则,终止循环;最后在每一次反复的时候,进行某种形式的“步进”,即执行迭代因子。
初始化部分设置循环变量的初值
条件判断部分为任意布尔表达式
迭代因子控制循环变量的增减
for循环在执行条件判定后,先执行的循环体部分,再执行步进。
for循环结构的流程图如图所示:
【2】代码展示:
步骤1:
package main
import "fmt"
func main(){
//实现一个功能:求和: 1+2+3+4+5:
//定义变量:
var i1 int = 1
var i2 int = 2
var i3 int = 3
var i4 int = 4
var i5 int = 5
//求和:
//定义一个变量,用来接收这个和
var sum int = 0
sum += i1
sum += i2
sum += i3
sum += i4
sum += i5
//输出结果:
fmt.Println(sum)
}
缺点:变量的定义太多了
步骤2:
package main
import "fmt"
func main(){
//实现一个功能:求和: 1+2+3+4+5:
//定义变量:
var i int = 1
//求和:
//定义一个变量,用来接收这个和
var sum int = 0
sum += i
i++
sum += i
i++
sum += i
i++
sum += i
i++
sum += i
i++
//输出结果:
fmt.Println(sum)
}
缺点:重复的代码太多了
解决:利用for循环:
package main
import "fmt"
func main(){
//实现一个功能:求和: 1+2+3+4+5:
//求和:
//利用for循环来解决问题:
var sum int = 0
for i := 1 ; i <= 5 ; i++ {
sum += i
}
//输出结果:
fmt.Println(sum)
// for循环的语法格式:
// for 初始表达式; 布尔表达式(条件判断); 迭代因子 {
// 循环体;--》反复重复执行的内容
// }
// 注意:for的初始表达式 不能用var定义变量的形式,要用:=
// 注意:for循环实际就是让程序员写代码的效率高了,但是底层该怎么执行还是怎么执行的,底层效率没有提高,只是程序员写代码简洁了而已
}
for循环原理:
使用细节
【1】格式灵活:
package main
import "fmt"
func main(){
i := 1 //变量的初始化
for i<=5 {
//条件表达式。判断条件
fmt.Println("你好 Golang")//循环体
i++//迭代
}
}
【2】死循环:
package main
import "fmt"
func main(){
//死循环:
// for {
// fmt.Println("你好 Golang")
// }
for ;; {
fmt.Println("你好 Golang")
}
}
在控制台中结束死循环:ctrl+c
边栏推荐
- 卡通渲染的历史
- 在Unity URP中实现Forward+
- JDBC最详讲解(快速入门)
- shell九九乘法口诀表
- Architecture Design Fundamentals
- oracle视图v$active_session_history,dba_hist_active_session_history如何记录IP地址
- 5次折戟IPO,互联网家装这条路,没土巴兔想的那么简单
- Redhat 7 Maria DB安装与配置
- Shell编程之循环语句与函数
- Transsion Holdings: At present, there is no clear plan for the company's mobile phone products to enter the Chinese market
猜你喜欢
Style Design Principles in Open Office XML Format
Shell编程之循环语句与函数
OpenSSH生成的私钥如何在putty中使用?
精彩来袭!鲲鹏开发者创享日·长沙站来啦
“非洲之王”传音答复投资者提问:手机产品暂无计划进入中国
Vue program of web cache problem after packaging
uniapp parent component uses prop to pass asynchronous data to child components
Geometric g6 will carry harmonyos system, a comprehensive upgrade competitiveness of products
MIMO雷达波束赋形
Rethinking HTAP database caused by rereading GPDB and TiDB papers
随机推荐
nyoj714 Card Trick(第六届河南省程序设计大赛)
USB CY68013设备描述符识别失败
Research on ORACLE subqueries that lead to inability to push predicates
This error is reported when the shake database is started. Is there a problem with the configuration?
Learn about layered architecture & SOA architecture together
synApps -- Autosave
企业进行知识共享的好处有哪些?
重读GPDB 和 TiDB 论文引发的 HTAP 数据库再思考
Smobiler的复杂控件的由来与创造
hdu2647 N!Again
openEuler 社区 2022 年 7 月运作报告
APICloud AVM 封装日期和时间选择组件
shell九九乘法口诀表
制造企业为什么要部署数字化工厂系统
ABAP 报表中如何给报表的输入参数增添 F4 Value Help
Redhat 7 Maria DB安装与配置
Which company is the best for futures account opening? It must be formal and safe
Transsion Holdings: At present, there is no clear plan for the company's mobile phone products to enter the Chinese market
Group DETR:分组一对多匹配是加速DETR收敛的关键
如何在Firewalld中为特定IP地址开放端口