返回

编程启航:深入理解Go语言中的if判断、for循环和goto

后端

Go语言if判断和for循环实战

if判断

在Go语言中,if判断用于在程序中实现分支控制,根据给定的条件来执行不同的代码块。if判断的基本语法如下:

if condition {
  // condition为真时执行的代码块
} else if condition {
  // condition为真时执行的代码块
} else {
  // condition为假时执行的代码块
}

示例代码:

package main

import "fmt"

func main() {
  num := 10
  if num > 0 {
    fmt.Println("num is positive")
  } else if num < 0 {
    fmt.Println("num is negative")
  } else {
    fmt.Println("num is zero")
  }
}

输出:

num is positive

for循环

在Go语言中,for循环用于在程序中重复执行一段代码块,直到循环条件不再满足。for循环的基本语法如下:

for condition {
  // condition为真时执行的代码块
}

示例代码:

package main

import "fmt"

func main() {
  for i := 0; i < 10; i++ {
    fmt.Println(i)
  }
}

输出:

0
1
2
3
4
5
6
7
8
9

fori循环

在Go语言中,fori循环是一种特殊的for循环,用于遍历数组、切片、映射和其他可迭代对象。fori循环的基本语法如下:

for i, v := range iterable {
  // i为索引,v为元素
}

示例代码:

package main

import "fmt"

func main() {
  arr := [5]int{1, 2, 3, 4, 5}
  for i, v := range arr {
    fmt.Println(i, v)
  }
}

输出:

0 1
1 2
2 3
3 4
4 5

for range

在Go语言中,for range循环是一种特殊的for循环,用于遍历管道和通道。for range循环的基本语法如下:

for v := range channel {
  // v为管道或通道中的值
}

示例代码:

package main

import (
  "fmt"
  "time"
)

func main() {
  ch := make(chan int)
  go func() {
    for i := 0; i < 10; i++ {
      ch <- i
    }
    close(ch)
  }()
  for v := range ch {
    fmt.Println(v)
  }
}

输出:

0
1
2
3
4
5
6
7
8
9

for循环作用域

在Go语言中,for循环的作用域与函数作用域相同,即for循环内的变量只在for循环内可见。如果需要在for循环外访问for循环内的变量,则需要将变量声明在for循环外。

示例代码:

package main

import "fmt"

func main() {
  var num int
  for i := 0; i < 10; i++ {
    num = i
  }
  fmt.Println(num) // 输出10
}

goto如何使用

在Go语言中,goto用于实现程序的非顺序控制,即跳转到程序中的其他位置。goto的基本语法如下:

goto label

其中,label为跳转的目标位置。

示例代码:

package main

import "fmt"

func main() {
  for i := 0; i < 10; i++ {
    if i == 5 {
      goto end
    }
    fmt.Println(i)
  }
end:
  fmt.Println("End of loop")
}

输出:

0
1
2
3
4
End of loop

goto的使用需要注意的问题

在Go语言中,goto的使用需要注意以下问题:

  • goto应该谨慎使用,过多使用goto会导致程序难以理解和维护。
  • goto只能跳转到同一函数内的其他位置,不能跳转到其他函数。
  • goto不能跳转到循环的中间,只能跳转到循环的开始或结束。
  • goto不能跳转到switch语句的中间,只能跳转到switch语句的开始或结束。

使用for循环打印9*9乘法表的实战应用

package main

import "fmt"

func main() {
  for i := 1; i <= 9; i++ {
    for j := 1; j <= i; j++ {
      fmt.Printf("%d x %d = %d\t", i, j, i*j)
    }
    fmt.Println()
  }
}

输出:

1 x 1 = 1
2 x 1 = 2
2 x 2 = 4
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
4 x 1 = 4
4 x 2 = 8
4 x 3 = 12
4 x 4 = 16
5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
5 x 4 = 20
5 x 5 = 25
6 x 1 = 6
6 x 2 = 12
6 x 3 = 18
6 x 4 = 24
6 x 5 = 30
6 x 6 = 36
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
7 x 6 = 42
7 x 7 = 49
8 x 1 = 8
8 x 2 = 16
8 x 3 = 24
8 x 4 = 32
8 x 5 = 40
8 x 6 = 48
8 x 7 = 56
8 x 8 = 64
9 x 1 = 9
9 x 2 = 18
9 x 3 = 27
9 x 4 = 36
9 x 5 = 45
9 x 6 = 54
9 x 7 = 63
9 x 8 = 72
9 x 9 = 81

总结

这篇文章全面讲解了Go语言中的if判断、for循环(包括fori循环和for range)及goto的使用,并通过示例代码展现了for循环在打印9*9乘法表中的应用,希望读者能更好地掌握这些基础知识,并在实际编程中灵活运用。