if
if语句基本结构:
if expre {
//代码块
} else if exper1 {
//代码块
} else {
//代码块
}
先看个例子:
package main
import "fmt"
func main() {
x := 3
if x>5 {
fmt.Printf("%d 大于 5",x)
} else {
fmt.Printf("%d 小于 5",x)
}
}
输出:
3 小于 5
Process finished with exit code 0
go语言
if
语句还支持在判断语句中声明变量,但该变量的作用域仅在判断语句中。
package main
import (
"fmt"
)
func addval(x int,y int) (sum int) {
sum = x+y
return sum
}
func main() {
if x := addval(1,3); x > 5 {
fmt.Printf("%d 大于 5",x)
} else {
fmt.Printf("%d 小于 5",x)
}
println(x) //此时的x 并没有定义,会引发错误
}
输出:
.\main.go:18:10: undefined: x
for
for
语句可以循环、迭代数据 还可以像while
一样控制逻辑。
常常使用for
语句,还会使用break
、continue
、goto
等关键字来操作。
for
语句基本结构:
for expre1; expre2; expre3 {
//...
}
expre1:是在
for
语句开始前调用
expre2:是for
语句的条件判断
expre3:是在for
语句每轮循环结束时调用
举个栗子-打印九九乘法表:
package main
import "fmt"
func main() {
for i :=1; i<10 ; i++ {
for j := 1;j<= i ; j++ {
fmt.Printf("%dx%d=%d ",j,i,i*j)
}
fmt.Println()
}
}
输出:
1x1=1
1x2=2 2x2=4
1x3=3 2x3=6 3x3=9
1x4=4 2x4=8 3x4=12 4x4=16
1x5=5 2x5=10 3x5=15 4x5=20 5x5=25
1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81
Process finished with exit code 0
for
语句中像while的用法:
package main
import "fmt"
func main() {
sum :=1
for sum<100{
sum +=sum
}
fmt.Println(sum)
}
输出:
128
Process finished with exit code 0
switch
switch
语句像许多语言的开关语句一样,如果一个if
语句中有else if
会让程序不易读懂和美观,这时建议使用switch
语句。
switch
语句基本结构:
switch sExpr {
case expr1:
some instructions
case expr2:
some other instructions
case expr3:
some other instructions
default:
other code
}
如果
switch
没有表达式,则返回true
需要注意的是,每个case
都相当于自带break
,当匹配到后不会继续后面的代码
如果有继续执行后面的case
代码的需求,可以使用fallthrough
关键字,来强制执行后面的语句。
使用fallthrough
关键字例子:
package main
import "fmt"
func main() {
x := 3
switch x {
case 1:
fmt.Println("x = 1")
fallthrough
case 2:
fmt.Println("x = 2")
fallthrough
case 3:
fmt.Println("x = 3")
fallthrough
case 4:
fmt.Println("x = 4")
fallthrough
default:
fmt.Println("x = 0")
}
}
输出
x = 3
x = 4
x = 0
Process finished with exit code 0