Go语言基础--嵌套循环(多重循环)

打印 上一主题 下一主题

主题 1736|帖子 1736|积分 5208

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
        嵌套循环可以让你在一个循环内部再嵌套另一个或多个循环。这种结构在处置惩罚多维数据(如二维数组、矩阵)或需要遍历多个集合时非常有用。 
   for 初始化语句1; 条件判断1; 更新语句1 {  
      // 外层循环体  
      for 初始化语句2; 条件判断2; 更新语句2 {  
          // 内层循环体  
          // 实行一些操作  
      }  
      // 内层循环结束后实行的代码(可选)  
  }  
  // 外层循环结束后实行的代码(可选)
   案例

        统计三个公司的安全结果环境,每个公司有4名员工,算出每个公司的均匀结果,以及每个公司的及格人数,80分以上为及格,代码如下: 用了二维数组存放信息
   package main
  
  import (
      "bufio"
      "fmt"
      "os"
      "strconv"
      "strings"
  )
  
  func main() {
      const companies = 3
      const employ = 4
  
      scores := make([][]int, companies)
      for i := range scores {
          scores = make([]int, employ)
      }
      reader := bufio.NewReader(os.Stdin)
      for company := 0; company < companies; company++ {
          fmt.Printf("请输入第%d个公司的员工结果(共 %d 名员工):\n", company+1, employ)
          for employee := 0; employee < employ; employee++ {
              fmt.Printf("员工 %d 的结果: ", employee+1)
              input, _ := reader.ReadString('\n')
              trimmedInput := strings.TrimSpace(input)
              score, err := strconv.Atoi(trimmedInput)
              if err != nil {
                  fmt.Printf("输入错误,无法将字符串 '%s' 转换为整数。错误:%v\n", input[:len(input)-1], err)
                  return
              }
              scores[company][employee] = score
          }
  
      }
      for company := 0; company < companies; company++ {
          totalScore := 0
          passingCount := 0
          for _, score := range scores[company] {
              totalScore += score
              if score >= 80 {
                  passingCount++
              }
          }
          avgScore := float64(totalScore) / float64(employ)
          fmt.Printf("第 %d 个公司的均匀结果是:%.2f,及格人数是:%d\n", company+1, avgScore, passingCount)
      }
  }
  99乘法表
   package main  
  
  import (  
      "fmt"  
  )  
  
  func main() {  
      var num int = 9  
      for i := 1; i <= num; i++ {  
          for j := 1; j <= i; j++ {  
              fmt.Printf("%v * %v = %v \t", j, i, j*i)  
          }  
          fmt.Println()  
      }  
  }
   

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

使用道具 举报

0 个回复

倒序浏览

快速回复

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

本版积分规则

郭卫东

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表