02-for循环

@

1. C语言风格

1.1 语法

for 赋值;控制条件;增减 { }

1.2 示例

  • 代码
package main
import "fmt"
var j int = 0
func main() {
for i:=0;i<100;i++ {
j = j + i
}
fmt.Println(j)
}
  • 输出
# go run sum.go
5050

2. 比较

2.1 语法

for控制条件{ }

2.2 示例

  • 代码
package main
import "fmt"
var i, j = 0, 0
func main() {
for i <= 100 {
j = j + i
i++
}
fmt.Println(j)
}
  • 输出
# go run sum.go
5050

3. 无限循环

for true { }

4. Range

4.1 数组和切片的范围

1)示例:用range求数组或切片的和

package main
import "fmt"
func main() {
nums := []int{2, 3, 4}
sum := 0
for _, num := range nums {
sum += num
}
}

说明:
给名为nums的range传如两个变量——index和值。
但是不需要使用该元素的index,因此用空白符“_”代替(如果写成变量,但是main中没有引用就报错了)

输出

sum: 9

2)打印数组的index

package main
import "fmt"
func main() {
nums := []int{2, 3, 4}
for i, num := range nums {
if num == 3 {
fmt.Println("index:", i)
}
}
}

结果

index: 1

4.2 map 上的应用

  • 代码
package main
import "fmt"
func main() {
kvs := map[string]string{"a": "apple", "b": "banana"}
for k, v := range kvs {
fmt.Printf("%s -> %s\n", k, v)
}
}
  • 输出结果
a -> apple
b -> banana

4.3 枚举Unicode字符串

  • 代码
package main
import "fmt"
func main() {
for i, c := range "wei" {
fmt.Println(i, c)
}
}
  • 输出
0 119
1 101
2 105

5. 循环控制

5.1 continue

1)作用:跳过本次循环之后的部分,继续循环

2)示例

脚本:

package main
import "fmt"
func main() {
for a := 1 ;a <= 10; a++ {
if a == 8 {
continue;
}
fmt.Printf("a 的值为 : %d\n", a);
}
}

说明:a==8 时,跳过了本次循环之后的打印值的部分。

执行

a 的值为 : 1
a 的值为 : 2
a 的值为 : 3
a 的值为 : 4
a 的值为 : 5
a 的值为 : 6
a 的值为 : 7
a 的值为 : 8
a 的值为 : 9
a 的值为 : 10

5.2 break

1)作用:跳出循环

2)示例 循环switch 开关

代码:

package main
import "fmt"
func main() {
var a int = 10
for a < 20 {
fmt.Printf("a 的值为 : %d\n", a);
a++;
if a > 15 {
break;
}
}
}

输出结果:

a 的值为 : 10
a 的值为 : 11
a 的值为 : 12
a 的值为 : 13
a 的值为 : 14
a 的值为 : 15

说明:到if条件的时候执行break 跳出了for循环。

5.3 goto

1)作用:
代码

package main
import "fmt"
func main() {
var i int = 1
fmt.Println("wait 1 ")
LOOP: fmt.Println("wait 2 ")
fmt.Println("wait 3 ")
for i < 10 {
i++
if i == 8 {
goto LOOP
}
fmt.Printf("i 的值为 : %d\n", i);
}
}

说明: 当i==8 时 跳过本次循环后边的打印。回到脚本前边LOOP的位置,继续打印wait 2 ,wait 3

执行结果

image.png


posted on   运维开发玄德公  阅读(8)  评论(0编辑  收藏  举报  

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示