多重循环for训练

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

一、代码

1.for 循环的嵌套:

//统计 3 个班成绩情况,每个班有 5 名同学,
//求出各个班的平均分和所有班级的平均分[学生的成绩从键盘输入]。
//统计三个班及格人数,每个班有 5 名同学。

import java.util.Scanner;
public class MulForExercise01 {
//编写一个 main 方法
public static void main(String[] args) {


//思路分析
//化繁为简
//(1) 先计算一个班 , 5 个学生的成绩和平均分 , 使用 for
  //1.1 创建 Scanner 对象然后,接收用户输入
  //1.2 得到该班级的平均分 , 定义一个 doubel sum 把该班级 5 个学生的成绩累积
//(2) 统计 3 个班(每个班 5 个学生) 平均分
//(3) 所有班级的平均分
  //3.1 定义一个变量,double totalScore 累积所有学生的成绩
  //3.2 当多重循环结束后,totalScore / (3 * 5)
//(4) 统计三个班及格人数
  //4.1 定义变量 int passNum = 0; 当有一个学生成绩>=60, passNum++
  //4.2 如果 >= 60 passNum++
//(5) 可以优化[效率,可读性, 结构]
//创建 Scanner 对象
   Scanner myScanner = new Scanner(System.in);
   double score = 0; //累积所有学生的成绩
   int passNum = 0;//累积 及格人数
   int classNum = 3; //班级个数
   int stuNum = 5;//学生个数
   for( int i = 1; i <= classNum; i++) {     //i 表示班级
      double sum = 0; //一个班级的总分
      for( int j = 1; j <= stuNum; j++) {    //j 表示学生
          System.out.println("请数第"+i+"个班的第"+j+"个学生的成绩");
          double score = myScanner.nextDouble();
          //当有一个学生成绩>=60, passNum++
          if(score >= 60) {
          passNum++;
          }
          sum += score; //累积
          System.out.println("成绩为" + score);
      }
      //因为 sum 是 5 个学生的总成绩
      System.out.println("sum=" + sum + " 平均分=" + (sum / stuNum));
      //把 sum 累积到 totalScore
      totalScore += sum;
   }
   System.out.println("三个班总分="+ totalScore
       + " 平均分=" + totalScore / (classNum*stuNum));
   System.out.println("及格人数=" + passNum);
  }
}

由上述的代码知道,在进行稍稍复杂的代码时应遵循化繁为简,先做简单的,再进行深入。 

2.九九乘法表

代码如下(示例):

1.标准的代码如下:

public class MulFor01 {
    public static void  main(String[] args) {
    	
    	for (int j = 1;j <= 9; j ++) {
	    	for (int i = 1; i <= j; i ++) {
	    		System.out.print(i + "*" + j +"=" + (j * i) +"\t ");   
	    	} 
	    	System.out.println();
	    }
    }
}

 注意:

1.这里的print();可以横向打印,而printIn();只有竖向打印。

原因是printIn表示换行打印,print表示不换行。

System.out.print(i + "*" + j +"=" + (j * i) +"\t ");
System.out.printIn(i + "*" + j +"=" + (j * i) +"\t ");

例如:

 

2.下面这两种输出情况是换行,以及换两行。

System.out.println();
System.out.println("\n");

 例如:


总结

在使用多重循环的时候例如

for(int i = 1; i <= 常量/变量(主要是这里判断);i  ++){   

                 for(int i = 1; i <= 常量/变量(主要是这里判断);i  ++){

    }

}

要牢记:化繁为简,先做出简单的循环,再添加内部满足功能。

循环的相关配合多思考,代码越简洁越好。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值