for
Go只有一种循环结构:for循环
基本的for循环由三部分组成,它们用分号隔开:
- 初始化语句:在第一次迭代前执行
- 条件表达式:在每次迭代前求值
- 后置语句:在每次迭代的结尾执行
初始化语句通常为一条短变量声明,该变量声明仅在for语句的作用域中可见。
一旦条件表达式的布尔值为false,循环迭代就是终止。
Go的for语句后面没有小括号,大括号{}是必须的。
package main
import "fmt"
func main() {
for i := 0 ; i < 10; i++ {
fmt.Println(i)
}
}
for循环的初始化语句与后置语句都是可选的。
package main
import "fmt"
func main() {
i := 0
for ;i < 10; {
fmt.Println(i)
i++
}
}
for为Go中的"while"
可以将for中的分号去掉,因为C的while在Go中名为for。
package main
import "fmt"
func main() {
var limit = 10
var i = 0
for i < limit {
fmt.Println(i)
i++;
}
}
无限循环
for如果省略循环条件,就会无限循环。
package main
import "fmt"
func main() {
for{
fmt.Println("hhh")
}
}
if
Go的if与for类似,表达式外无需小括号(),大括号{}是必须的。
package main
import "fmt"
func main() {
i := 10
if i > 5 {
fmt.Println("ssss")
}
fmt.Println("siiio")
}
if的简短语句
与for相同,if语句可以在条件表达式之前执行一个简单的语句。
该语句声明的变量作用域仅在if之内。
package main
import "fmt"
func main() {
if i := 1; i < 10{
fmt.Println("sss")
}
fmt.Println("ooo")
}
if与else
在if的简短语句中声明的变量同样可以在任何对应的else块中使用。
package main
import "fmt"
func main() {
if i := 1; i > 10 {
fmt.Println("large")
} else {
i = 999
fmt.Println("small")
fmt.Println(i)
}
}