1. 条件语句
1.1 if
语句
if
语句用于根据条件执行代码块。
package main
import "fmt"
func main() {
x := 10
if x > 5 {
fmt.Println("x is greater than 5")
}
}
1.2 if-else
语句
if-else
语句用于根据条件执行不同的代码块。
package main
import "fmt"
func main() {
x := 10
if x > 5 {
fmt.Println("x is greater than 5")
} else {
fmt.Println("x is less than or equal to 5")
}
}
1.3 if-else if-else
语句
if-else if-else
语句用于检查多个条件。
package main
import "fmt"
func main() {
x := 10
if x > 10 {
fmt.Println("x is greater than 10")
} else if x == 10 {
fmt.Println("x is equal to 10")
} else {
fmt.Println("x is less than 10")
}
}
1.4 在条件中声明变量
在if
语句的条件中,可以声明一个变量,该变量在整个if
块中可见。
package main
import "fmt"
func main() {
if x := 10; x > 5 {
fmt.Println("x is greater than 5")
} else {
fmt.Println("x is less than or equal to 5")
}
// fmt.Println(x) // 这里会报错,因为x只在if语句块内有效
}
2. 循环语句
2.1 for
循环
for
是Go语言中唯一的循环结构,可以实现多种循环形式。
2.1.1 基本的for
循环
package main
import "fmt"
func main() {
for i := 0; i < 5; i++ {
fmt.Println(i)
}
}
2.1.2 省略初始语句和后置语句的for
循环
package main
import "fmt"
func main() {
i := 0
for i < 5 {
fmt.Println(i)
i++
}
}
2.1.3 无限循环
package main
import "fmt"
func main() {
for {
fmt.Println("Infinite loop")
break // 使用break退出循环
}
}
2.1.4 使用range
迭代
range
用于迭代数组、切片、映射、字符串或通道。
package main
import "fmt"
func main() {
arr := []int{1, 2, 3, 4, 5}
for index, value := range arr {
fmt.Println(index, value)
}
}
3. 分支语句
3.1 switch
语句
switch
语句用于执行多个分支之一。
3.1.1 基本的switch
语句
package main
import "fmt"
func main() {
x := 2
switch x {
case 1:
fmt.Println("x is 1")
case 2:
fmt.Println("x is 2")
case 3:
fmt.Println("x is 3")
default:
fmt.Println("x is not 1, 2, or 3")
}
}
3.1.2 单个case多个条件
package main
import "fmt"
func main() {
x := "a"
switch x {
case "a", "e", "i", "o", "u":
fmt.Println("x is a vowel")
default:
fmt.Println("x is a consonant")
}
}
3.1.3 没有条件的switch
没有条件的switch
相当于switch true
,用于替代一系列的if-else if
语句。
package main
import "fmt"
func main() {
x := 10
switch {
case x < 0:
fmt.Println("x is negative")
case x == 0:
fmt.Println("x is zero")
case x > 0:
fmt.Println("x is positive")
}
}
4. 跳转语句
4.1 break
语句
break
语句用于退出循环或switch
语句。
package main
import "fmt"
func main() {
for i := 0; i < 10; i++ {
if i == 5 {
break // 退出循环
}
fmt.Println(i)
}
}
4.2 continue
语句
continue
语句用于跳过当前循环的剩余部分,并开始下一次迭代。
package main
import "fmt"
func main() {
for i := 0; i < 10; i++ {
if i%2 == 0 {
continue // 跳过偶数
}
fmt.Println(i)
}
}
4.3 goto
语句
goto
语句用于跳转到代码中的标签位置。
package main
import "fmt"
func main() {
i := 0
loop:
fmt.Println(i)
i++
if i < 5 {
goto loop // 跳转到标签loop
}
}
示例代码
以下是一个包含各种控制结构的完整示例代码:
package main
import "fmt"
func main() {
// if-else语句
x := 10
if x > 5 {
fmt.Println("x is greater than 5")
} else {
fmt.Println("x is less than or equal to 5")
}
// for循环
for i := 0; i < 3; i++ {
fmt.Println(i)
}
// switch语句
y := "b"
switch y {
case "a":
fmt.Println("y is a")
case "b":
fmt.Println("y is b")
case "c":
fmt.Println("y is c")
default:
fmt.Println("y is not a, b, or c")
}
// 跳转语句
for i := 0; i < 5; i++ {
if i == 3 {
break // 退出循环
}
fmt.Println(i)
}
for i := 0; i < 5; i++ {
if i%2 == 0 {
continue // 跳过偶数
}
fmt.Println(i)
}
// goto语句
i := 0
loop:
fmt.Println(i)
i++
if i < 3 {
goto loop // 跳转到标签loop
}
}
通过以上教程和示例,你可以系统地了解和掌握Go语言中的各种控制结构。多加练习,能够更加熟练地运用这些控制结构编写逻辑复杂的程序。
版权声明:如无特殊说明,文章均为本站原创,转载请注明出处
本文链接:http://example.com/subject/article/88/
许可协议:署名-非商业性使用 4.0 国际许可协议