14-Golang中的多重循环及案例

基本介绍

  • 1.将一个循环放在另一个循环体内,就形成了嵌套循环。在外边的for称为外层循环在里面的for循环称为内层循环。[建议一般使用两层,最多不要超过3层]
  • 2.实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环。
  • 3.外层循环次数为m次,内层为n次,则内层循环体实际上要执行m*n=mn次。

案例1:

实验要求:统计三个班成绩情况,每个班五名同学
求出各个班的平均分和所有班级的平均分
并记录及格人数

package main
import "fmt"

func main(){
	/*
	是实验要求:统计三个班成绩情况,每个班五名同学
	求出各个班的平均分和所有班级的平均分

	实验思路一:
	1,先实现一个循环,即求出每个班五名同学的平均分
	2.声明一个变量sum

	实验思路二:
	1,实现循环二,求出每个班级的平均分
	2,j表示第几个班级
	3,定义一个变量存放总成绩

	实验思路三:
	1,使代码变活
	2,定义两个变量,表示班级的个数和班级的人数
	*/

	var classNum int = 3
	var stuNum = 5
	var t float64 = 0.0
	var passCount int = 0
	for j := 1; j <= classNum; j++{
	sum := 0.0
	for i := 1; i <= stuNum; i++ {
		var score float64  //变量接受学生成绩
		fmt.Printf("请输入第%d个班的第%d个学生的信息 \n", j, i)
		fmt.Scanln(&score)

		//累积总分
		sum += score
		//判断分数是否及格
		if score >= 60 {
			passCount++
		}
	}

	fmt.Printf("第%d个班的班级的平均分是%v\n", j, sum / float64(stuNum))
	//将各个班的总成绩累积到t
	t += sum

	}
	fmt.Printf("各个班级的总成绩%v 所有班级平均分是%v\n", t , t / (float64(stuNum * classNum)))
	fmt.Printf("三个班一共有%d个及格的", passCount)

}

案例2:

打印金字塔

package main
import "fmt"

func main(){
	var totalLevel int = 100

	//i表示层数
	for i := 1; i<= totalLevel; i++ {
		//在打印*之前先打印空格
		for k := 1 ; k <= totalLevel - i; k++ {
			fmt.Print(" ")
		}

		//j表示每层打印多少*
		for j :=1; j <= 2 * i - 1; j++ {
			fmt.Print("*")
		}
		fmt.Println()
	}
}

案例3:

打印九九乘法表

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()
	}
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值