go基础-6.for循环

任何编程语言,都会有for循环,它的一般写法是

for 初始化;条件;操作{
}

例如求1+2+...+100的和

package main

import "fmt"

func main() {

  var sum = 0
  for i := 0; i <= 100; i++ {
    sum += i
  }
  fmt.Println(sum)
}

for循环的五种变体

传统for循环

如上

死循环

每隔1秒打印当前的时间

package main

import (
  "fmt"
  "time"
)

func main() {

  for {
    time.Sleep(1 * time.Second)
    fmt.Println(time.Now().Format("2006-01-02 15:04:05")) // 年月日时分秒的固定格式
  }
}

while模式

由于golang没有while循环,如果需要,则是由for循环稍微变化得来

package main

import "fmt"

func main() {

  i := 0
  sum := 0
  for i <= 100 {
    sum += i
    i++
  }
  fmt.Println(sum)
}

do-while模式

do-while模式就是先执行一次循环体,再判断

package main

import "fmt"

func main() {

  i := 0
  sum := 0
  for {
    sum += i
    i++
    if i == 101 {
      break
    }
  }
  fmt.Println(sum)
}

遍历切片,map

遍历切片

第一个参数是索引,第二个参数是

package main

import "fmt"

func main() {

  s := []string{"枫枫", "知道"}
  for index, s2 := range s {
    fmt.Println(index, s2)
  }
}

遍历map

第一个参数就是key,第二个就是value

package main

import "fmt"

func main() {

  s := map[string]int{
    "age":   24,
    "price": 1000,
  }
  for key, val := range s {
    fmt.Println(key, val)
  }
}

break,continue

break用于跳出当前循环

continue用于跳过本轮循环

例如打印九九乘法表

package main

import "fmt"

func main() {

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

除了这样写,还能这样写

package main

import "fmt"

func main() {

  for i := 1; i <= 9; i++ {
    for j := 1; j <= 9; j++ {
      if j > i {
        // 去掉 列比行大的数据
        continue
      }
      fmt.Printf("%d * %d = %d\t", i, j, i*j)
    }
    fmt.Println()
  }
}

posted @ 2024-09-24 11:04  枫枫知道  阅读(4)  评论(0编辑  收藏  举报