多重嵌套循环

嵌套循环介绍

1.将一个循环放在另一个循环体内,就形成了嵌套循环。for while dowhile 均可作为外层循环和内层循环
2.嵌套循环就是把内层循环当成了外层循环的循环体,当只有内层循环的循环条件为false时,才会完全跳出内层循环,才可结束外层循环的当次循环,开始下一次的循环
案例:
for(int a = 1;a<2;a++){
for(int b = 1;b<3; b++){
System.out.println(“a=”+a"b="+b);
}
}

当第一重循环开始时 a = 1 进入到循环体 也就是第二重循环里 b=1 符合循环条件然后输出第二重的循环体 a =1 b=1.输出结束后,接着在第二重循环的b++进行自增,然后再在第二重的循环条件判断,为真则继续进行第二重循环体,输出a= 1 b =2 在进行b++自增,b= 3 循环条件失败。接着跳转回第一重循环,a++ 变成a= 2.然后再次重复第二重循环的循环体(注意,再次进入第二重循环体时,变量b会重新进行赋值变成1)

也就是当进入第二重循环时会将第二重循环一直执行到false,再返回回去自增第二重循环。
循环执行顺序:初始化变量>>循环条件判断(T就继续F就跳出>>)循环体>>变量更迭>>循环条件判断…

设外层循环次数为m次,内层循环次数为n次。则内层循环体实际上就需要执行m*n次

练习一:统计三个班成绩情况,每个班有五名同学,求出各个班的平均分和所有班级的平均分(分数使用键盘输入)并且统计三个班的及格人数

	/*统计三个班成绩情况,每个班有五名同学,求出各个班的平均分和所有班级的平均分(分数使用键盘输入)
		并且统计三个班的及格人数*/
		/*(1)第一步首先化繁为简,先收集统计一个班的数据,
		1.1 设定一个变量统计班级总分,利用输出语句求出平均分
		(2)第二步,增加一个外层循环作为班级的数量
		2.1再设定一个变量用于统计全部班级的总分,然后输出全部班级的平均分
		(3)第三步,再再设定一个变量,使用if判断多少个及格*/
		Scanner myScanner = new Scanner(System.in);
		double allScore =0;
		int passNum = 0;
		for(int b = 1;b<=3;b++){
			double sum = 0;//统计一个的和
			for (int a = 1;a<=5;a++ ) {
			System.out.println("请输入第"+b+"个班级的第"+a+"个学生的成绩");
			double score = myScanner.nextDouble();
			System.out.println("成绩为"+score);
			if (score>=60) {//输入的成绩大于或者等于60就进入if语句进行++
				passNum++;
			}
			sum+=score;
			}
			allScore+=sum;
			System.out.println("sum="+sum+"平均分="+sum/5);
			System.out.println("全年级及格人数为"+passNum+"个");
		}System.out.println("年级总分为:"+allScore+"年级平均分="+allScore/15);

繁琐的需求,需要化繁为简,一个需求一个需求的去完成。不可能一步到位

练习二 打印九九乘法表

需求分析:需要两个数字相乘,利用嵌套for循环的特性配合输出语句符号 即可完成

//外层作为第一个乘数,内层作为被乘数
		for (int a = 1;a<=9 ;a++ ) {
			for (int b = 1;b<=a;b++) {
				System.out.print(b+"x"+a+"="+a*b+"\t");
			}
			System.out.println();
		}

注意点:第二重循环的的判断条件要使用b<=a,这样才能使打印的效果成阶梯式呈现,b<=a,会在a的范围内b从1自增到与a相等,与99乘法表一致。以此加换行

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值