多重循环练习

案列:

/*
1.统计3个班成绩情况,每个班有5名学生;
2.求出各个班的平均分和所有班级的平均分
(学生成绩从键盘输入)
*/

复制代码
import java.util.Scanner;
public class demo01{
    public static void main(String[]args){
         /*
         1.统计3个班成绩情况,每个班有5名学生;
         2.求出各个班的平均分和所有班级的平均分
         (学生成绩从键盘输入)
         */
         //思路分析:
         /*
          1.先统计一个班的五名学生成绩情况;
          2.要求平均分,先求着这五名学生的总分;
          3.一个班级的学生算出来后,在用for循环求是三个班的 
         */
         //创建一个Scanner对象
         Scanner myscanner = new Scanner(System.in);
        // System.out.println("请输入班级名称");
         double totalScore = 0;
         int passNum = 0;//学生成绩及格人数
         for (int i = 1;i<=3 ;i++ ) {//i 表示 班级数目
         double sum = 0;//一个班分数
         for (int j = 1;j<=5 ; j++) {// j 表示学生人数
             System.out.println("请输入第"+i+"个班的第"+j+"个学生成绩");
               double score = myscanner.nextDouble();//用于接收五名学生的成绩
              //当接收的分数大于等于60分时,及格人数+1
              if (score>=60) {
                 passNum++;
              }
              sum += score;//累计总分
               System.out.println("成绩为"+score);//输出每名学生的成绩
         }
         System.out.println("sum="+sum+"平均分="+(sum/5));//输出这五名学生的总分和平均分
        //把sum累计到totalScore;
         totalScore += sum;
      }
      System.out.println("三个班总分="+totalScore+"平均分="+totalScore/15);
      System.out.println("及格人数="+passNum);
    }
}
复制代码

 案列2:打印空心三角形

 

复制代码
 1 public class demo03{
 2     public static void main(String[]args){
 3         /*
 4         1.打印半个金字塔
 5         *   第1层1个* 
 6         **  第2层2个*
 7         *** 第3层3个*
 8         **** 第4层4个*
 9         ****** 第5层5个*
10 
11        2.打印整个金字塔:
12         *     第1层1个*   *个数=2*层数-1
13        ***    第2层3个*   *个数之前的空格数=总层数-当前层数
14       *****   第3层5个*
15      *******  第4层7个*
16     ********* 第5层9个*
17        3.打印空心金字塔
18 
19         *     当前行的第一个位置是*,最后一个位置也是*
20        * *    
21       *   *   
22      *     *  
23     ********* 最后一行是*
24 
25 
26         */
27        int totalLevel = 7;
28 
29 for (int i =1; i<=totalLevel ;i++ ) { //i表示层数
30         //空格数=总层数-当前层
31             for (int k=1; k<=totalLevel-i ; k++) {  //表示*个数之前的空格数
32             System.out.print(" ");
33             }
34             //控制打印每层的*个数
35             for ( int j=1; j<=2*i-1 ;j++ ) { //j表示*的个数
36                 if (j==1 || j == 2*i-1 || i==totalLevel) {//判断*的个数,从而留出中间空格的位置
37                 System.out.print("*");
38             }else{
39                 System.out.print(" ");
40             }
41             }
42             //每输入一行后,进行换行
43             System.out.println("");
44                 
45         }
46     }
47 }
复制代码

 

posted @   捞月亮的渔夫  阅读(52)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示