golang语言for(循环结构)详解
golang语言for(循环结构)详解
Go 语言中的所有循环类型均可以使用for关键字来完成。
for循环的基本格式如下:
for 初始语句;条件表达式;结束语句{
循环体语句
}
条件表达式返回true时循环体不停地进行循环,直到条件表达式返回false时自动退出循环。
for i := 0; i < 10; i++ {
fmt.Println(i)
}
for循环的初始语句可以被忽略,但是初始语句后的分号必须要写,例如:
i := 0
for ; i < 10; i++ {
fmt.Println(i)
}
for循环的初始语句和结束语句都可以省略,例如:
i := 0
for i < 10 {
fmt.Println(i)
i++
}
这种写法类似于其他编程语言中的while,在while后添加一个条件表达式,满足条件表达式时持续循环,否则结束循环。 注意:Go语言中是没有while语句的,我们可以通过for代替 for无限循环
for {
循环体语句
}
for循环可以通过break、goto、return、panic语句强制退出循环。
k := 1
for { // 这里也等价 for ; ; {
if k <= 10 {
fmt.Println("ok~~", k)
} else {
break //break就是跳出这个for循环
}
k++
}
练习:打印0-50所有的偶数
for i := 0; i < 50; i++ {
if i%2 == 0 {
fmt.Println(i)
}
}
练习:打印1~100之间所有是9的倍数的整数的个数及总和
count := 0
sum := 0
for i := 1; i < 100; i++ {
if i%9 == 0 {
sum += i
count++
}
}
fmt.Println("count=",count)
fmt.Println("sum=",sum)
练习:求 1+2+3+4 +…100的和
sum := 0
for i := 0; i <= 100; i++ {
sum += i
}
fmt.Println("sum=", sum)
练习:计算5的阶乘 (12345 n的阶乘12……n)
var n = 5
sum := 1
for i := 1; i <= n; i++ {
sum *= i
}
fmt.Println("sum=", sum)
练习: 打印一个矩形
for i := 1; i <= 12; i++ {
fmt.Print("*")
if i%4 == 0 {
fmt.Println()
}
}
嵌套循环解决这个问题
line := 4
num := 8
for i := 1; i <= line; i++ {
for j := 0; j < num; j++ {
fmt.Print("*")
}
fmt.Println()
}
练习: 打印一个三角形
*
**
***
****
*****
line := 5
for i := 1; i <= line; i++ {
for j := 0; j < i; j++ {
fmt.Print("*")
}
fmt.Println()
}
练习:打印出九九乘法表
1x1=1
2x1=2 2x2=4
3x1=3 3x2=6 3x3=9
4x1=4 4x2=8 4x3=12 4x4=16
5x1=5 5x2=10 5x3=15 5x4=20 5x5=25
6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36
7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49
8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64
9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81
for i := 1; i <= 9; i++ {
for j := 1; j <= i; j++ {
fmt.Printf("%vx%v=%v \t", i, j, i*j)
}
fmt.Println()
}