当前位置:网站首页>GO语言循环语句-for循环
GO语言循环语句-for循环
2022-06-09 00:35:00 【一边学习一边哭】
前言
GO语言中没有while循环,只有for循环。
GO语言有break、default 、func、select、case、defer、go、map、else、goto、for、if、var等25个关键字。
语法
1.常规写法
for i := 1; i <= 5; i++ {
fmt.Println(i)
}2.变形写法
i := 1;
for i <= 5 {
fmt.Println(i)
i++
}3.省略条件语句,变成while true
for {
fmt.Println("Hello World")
}4.嵌套for循环
for i := 1; i <= 5; i++ {
for j := 1; j <= 5; j++ {
fmt.Println(i, j)
}
}循环控制-break、continue、goto
break和continue
break和continue都是结束循环语句
- break是用来结束整个循环语句
- continue是用来结束此次循环居于
//当i=3时,结束for循环
for i := 1; i <= 5; i++ {
if i == 3 {
break
}
}
//当i=3时,结束此次循环,开始下一次循环
for i := 1; i <= 5; i++ {
if i == 3 {
continue
}
}跳出外部循环
多重循环时,内部循环控制跳出外部循环,可以使用break 加上外部循环的标签块。
除了break、continue外,goto关键字也可以跳出循环。
package main
import (
"fmt"
)
func main() {
fmt.Println("---break跳出外部循环---")
OutLoop1:
for i := 1; i <= 3; i++ {
for j := 1; j <= 3; j++ {
if j == 3 {
break OutLoop1
}
fmt.Println([]int{i, j})
}
}
fmt.Println("---continue跳出外部循环---")
OutLoop2:
for i := 1; i <= 3; i++ {
for j := 1; j <= 3; j++ {
if j == 3 {
continue OutLoop2
}
fmt.Println([]int{i, j})
}
}
}输出

for ... range ...
for range每次获取一对值,下标和数值。for只能通过下标获取元素。
for range可以遍历切片、数组、字符串、Map、Channel
建议不需要后去下标时舍弃下标,提高性能
语法
for index, value := range arrayTest {
...
}需要注意的是:
如“for index, value := range arrayTest {...}”遍历数组时。在for循环中直接对value进行修改或者赋值,实际数组中的元素不会发生改变。
原因是for range获取的value是将对象中的元素copy了一份。所以如果实际需要修改元素时,可以使用下标找到对应元素,再进行修改。
边栏推荐
猜你喜欢
随机推荐
[tool sharing] the oil monkey plug-in tempermonkey script is an efficient tool for the browser
Cloud native technology -- kubedm uses external etcd cluster
Google domestic image website Collection
[the problem has been solved] - harbor can login successfully, pull successfully, but push reports an error
Postgresql入门
Ansible自动化运维 —— 筑梦之路
redhat 9.0 制作openssh rpm包(9.0p1) —— 筑梦之路
Pythia - vision and language research platform
双亲委派机制的原理和作用是什么?
Glamour chemistry glamour
Superslide picture switching
鼠标移过,左右按钮显示
MySQL 教程(基础篇)第05话:MySQL 的数据模型和 SQL 语言
优化实战篇—UDAF批量调用外部请求(02)
R data analysis: how to display statistical results concisely and efficiently
扁平化登录form页面
JS as home page
MySQL 教程(基础篇)第04话:mysqld 和 mysql 命令的区别
什么是缓存雪崩、缓存击穿、缓存穿透?
矩阵 - 二维区域和检索 - 矩阵不可变,leetcode 304









