循环语句

题目如下

关于循环语句,下面说法正确的有()

  • A. 循环语句既支持 for 关键字,也支持 while 和 do-while;
  • B. 关键字 for 的基本使用方法与 C/C++ 中没有任何差异;
  • C. for 循环支持 continue 和 break 来控制循环,但是它提供了一个更高级的 break,可以选择中断哪一个循环;
  • D. for 循环不支持以逗号为间隔的多个赋值语句,必须使用平行赋值的方式来初始化多个变量;

答案:

1
C、D

解析:

  • A. 该选项不正确。Go语言中只支持for循环语句,而不支持while和do-while循环语句。但是for循环的使用方法较为灵活,使用 for 循环来模拟这些语句的效果。可以满足大部分循环需求。

  • 选项 B 中的说法不正确,因为 Go 语言中的 for 语句与 C/C++ 中略有不同。例如:

    • 条件语句中不需要括号;
    • 可以省略条件语句,相当于 while(true)
    • 提供了一个更高级的 break,可以选择中断哪一个循环;
    • 不支持以逗号为间隔的多个赋值语句,必须使用平行赋值的方式来初始化多个变量。
  • C. 该选项正确。Go语言的for循环语句支持continue和break关键字来控制循环流程,同时还提供了一个更高级的break,可以选择中断指定的循环语句。

    • 这里使用Loop标签,用于选择需要中断哪一个循环,下面的例子选择中断外面的循环

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      func main() {
      Loop:
      for i := 0; i < 3; i++ {
      for j := 0; j < 3; j++ {
      if i == 1 && j == 1 {
      // 使用标签选择中断外层循环
      break Loop
      }
      fmt.Printf("i:%d, j:%d\n", i, j)
      }
      }
      // 标签名为 Loop,用于中断外层循环
      fmt.Println("Done!")
      }

      输出如下:

      1
      2
      3
      4
      i:0, j:0
      i:0, j:1
      i:0, j:2
      i:1, j:0
    • 下面的例子选择中断内部循环

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      package main

      import "fmt"

      type User struct {
      ID uint
      Name string
      }

      func main() {

      for i := 0; i < 3; i++ {
      Loop:
      for j := 0; j < 3; j++ {
      if i == 1 && j == 1 {
      // 使用标签选择中断外层循环
      break Loop
      }
      fmt.Printf("i:%d, j:%d\n", i, j)
      }
      }
      // 标签名为 Loop,用于中断内层循环
      fmt.Println("Done!")
      }

      输出如下:

      1
      2
      3
      4
      5
      6
      7
      8
      i:0, j:0
      i:0, j:1
      i:0, j:2
      i:1, j:0
      i:2, j:0
      i:2, j:1
      i:2, j:2
      Done!
    • 对比上述两种情况,应该就能大概理解这个Loop的用法了。

  • D. 该选项正确。Go语言中的for循环语句不支持以逗号为间隔的多个赋值语句,必须使用平行赋值的方式来初始化多个变量。

    • //会报错
      for i := 0, j := 1; i < 10; i ++{
              ...
          }
      
      1
      2
      3
      4
      5
      6
      7

      - ```go
      //可以正常使用
      //平行赋值: i, j := 0, 0
      for i, j := 0, 0; i < 10; i++ {

      }

循环语句
http://example.com/2023/04/25/Go每日一题/循环语句/
作者
Feng Tao
发布于
2023年4月25日
更新于
2023年4月25日
许可协议