初面网初面网

条件语句与循环语句

条件语句有:if...else, switch, select

循环语句有:for, while

if...else if...else

var a int = 90
var b int = 81
if a < 100 {
  fmt.Println("优秀")
} else if a < 90 && a > 60 {
  fmt.Println("及格")
} else {
  fmt.Println("不及格")
}

switch

var username string = "tom"
switch username {
  case "tom", "tony":
    fmt.Println("boy")
    break // 可以不写break。想穿透写fallthrought
  case "sindy":
    fmt.Println("girl")
    break
  default:
    break
}

select

for

for i := 1; i <= 5; i++ {
  if i == 1 {
    continue  // 继续本层循环
  }
  if i == 2 {
    break     // 跳出本层循环
  }
  fmt.Println(i)
}

lable1: // 循环标记标签
  for i := 1; i <= 10; i++ {
    for k := 1; k <= 5; k++ {
      if i == 6 {
        break
      }

      if i == 7 {
        break lable1 // 跳出标记的循环。continue也可以使用标签
      }
    }
  }

for range(键值循环)

遍历数组、切片、字符串、map及通道(channel)

  1. 数组、切片、字符串返回索引和值
  2. map返回键和值
  3. 通道(channel)只返回通道内的值
var str = "你好world"
var arr = []string{"tom","tony","sindy"}

for k,v := range str {
  fmt.Printf("key=%v", k, "val=%c\n", v)
}

for _,v := range arr {
  fmt.Println(v)
}

goto

  var n int = 20
  if n > 10 {
    fmt.Println("字符")
    goto lable3
  }

  fmt.Println("a")
  fmt.Println("b")
lable3:
  fmt.Println("c")
  fmt.Println("d")

更新于 2026/8/13