Go语言基础--for循环

饭宝  金牌会员 | 2024-8-24 03:38:19 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 576|帖子 576|积分 1728

for循环   

   for循环具有三个可选的构成部门:初始化语句(在循环开始前实验一次)、条件表达式(在每次循环开始前评估)、后处置惩罚语句(在每次循环体实验完毕后实验)。Go语言中的循环语句只支持for关键字,而不支持while和do-while结构。
           for 初始化语句; 条件表达式; 后处置惩罚语句 {  
            // 循环体  
        }
  

  • 初始化语句:在循环开始前实验,通常用于初始化一个或多个计数器变量。
  • 条件表达式:在每次循环开始前评估。假如条件为真(true),则实验循环体;假如为假(false),则制止循环。
  • 后处置惩罚语句:在每次循环体实验完毕后实验,通常用于更新计数器变量。
示例:
           for i := 0; i <= 10; i++ {
                  fmt.Println(i)
          } 
  for循环其他格式 
           i := 0
          for i<=10; {
                  fmt.Println(i)
          i++
          }
        i := 0
      for {
          if i<=10{
              fmt.Println(i)
          } else {
              break
          }
  i++
      }
  假如不加break会输出0--10之后继承循环,但是不会再打印,因为是无穷循环,go语言中没有缩进要求,只要在括号里就可以
  for...range循环 

        for...range循环用于遍历数组、切片、字符串、映射(map)或通道(channel)的元素。它会主动处置惩罚索引和值(对于映射,则是键和值)。
           for 索引, 值 := range 聚集 {
                  // 循环体
          }
  

  • 索引:对于数组、切片、字符串,是元素的索引;对于映射,是键。
  • :聚集中对应索引或键的
示例:


  • 遍历切片:
   slice := []int{1, 2, 3, 4, 5}  
  for index, value := range slice {  
          fmt.Printf("Index: %d, Value: %d\n", index, value)
  }
  

  • 遍历字符串:
   原本的方式遍历 
    var str string = "I like 黑神话悟空"
      str2 :=[]rune(str)
      for i :=0; i<len(str2); i++{
          fmt.Printf("%c \n", str2)
      }
        var str string = "I like 黑神话悟空"
      for index,value := range str{
          fmt.Printf("index=%d, value=%c \n",index,value)
      }
  忽略索引:
      var str string = "I like 黑神话悟空"
      for  _,value := range str {
          fmt.Printf("value=%c \n", value)
      }
  
  

  • 遍历映射:
   m := map[string]int{"a": 1, "b": 2, "c": 3}
  for key, value := range m { 
          fmt.Printf("Key: %s, Value: %d\n", key, value)  
  }
    无穷循环

        假如省略了for循环的初始化语句、条件表达式和后处置惩罚语句,它将成为一个无穷循环,直到你显式地通过break语句退出循环或利用return语句从包罗它的函数返回。
   for {  
    // 循环体  
    // 可以通过break语句退出循环  
}
  示例:
   for { 
          fmt.Println("这是一个无穷循环,必要手动制止!")  
              // 假设这里有一些条件判断,满意条件时退出循环  
            // break  
  }
   案例

算出来1-88能被9整除的数目和累计和
   package main
  
  import "fmt"
  
  func main() {
      var a int = 88
      var count int = 0
      var sum int = 0
      for i:=1; i<=a; i++ {
          if i%9 == 0 {
              count++
              sum += i
          }
      }
      fmt.Println(count,sum)
  }
  

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

饭宝

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表