基本介绍
- 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()
}
}