07 流程控制 03嵌套循环

  嵌套循环

  用法,定义:在一个循环结构里面,内部有嵌套了另一个循环结构,就形成了嵌套循环, 在之前三种循环(for , while,do-while)基本结构都可以实现嵌套循环,还可以交叉使用。

  本质:1.内层循环充当了外层循环中的循环体内容,
                  2.当内层循环的循环条件为false时才会跳出内层循环,执行外层循环,
                  3.只有当外层循环结构中的循环条件为false时,才会结束整个嵌套循环
                  4.在嵌套循环结构中的循环总次数 = 内层循环次数 * 外层循环的次数

 

  解题思路:

      1.看清楚内外循环分清有几个变量找到切入点。

      2.首要的是先确定外层循环  确定外层循环的变量。

      3.循环次数是已知的,确定的,建议使用for循环。

题:

题:球从100米的高度自由落下,每次落地后反跳原高度的2/3再落下
        求它在第10次落地时,共经过多少米?第10次反弹多高?
    
       double downHeight = 100;//初试落下高度  第一次
                double coefficient = 2.0 / 3.0;// 弹起高度系数
                double upHeight = 100 * coefficient;// 初始弹起高度 第一次
                double length  = downHeight + upHeight; // 初始经过的米数 第一次
                //循环次数
                for (int i = 2 ; i <= 10; i++){
                    //循环体代码
                    //落下的高度 = 上一次弹起的高度
                    downHeight = upHeight;//  66.666  66.6666
                    //计算弹起的高度
                    upHeight = downHeight * coefficient;

                    //每次弹起之后的经过的长度  最后一次弹起的高度不计算
                    length = length + downHeight + upHeight;//经过的长度

                }
                //输出第10次落地式经过的长度
                System.out.println("第十次落地时经过的长度:"+ (length - upHeight)+"");

                System.out.println("第十次落地时经过的长度:" + upHeight +"");


    

 

题:给20块钱买可乐,每瓶可乐3块钱,喝完之后退瓶子可以换回1块钱,问最多可以喝到多少瓶可乐。
    int money = 20;//购买可乐钱      循环变量是money
        int price = 3 ;//可乐价钱
        int sum = 0 ;//购买可乐的瓶数累加和
        int change = 0 ;//零钱
        int num = 0;// 每次都买的瓶数
        //可以用for while do-while;
        //通常使用for循环的时候,循环次数是确定的,不确定一般很少用,或者余姚参与循环的变量的长度是确定的(及最大值最小值知道的)
        //不确定次数,不确定长度 ,我们就使用while  /  do-while循环
        //通常循环的结构是包含四部分:循环变量的迭代部分,灵活变化的 循环条件表达式和循环变量紧密结合的,
        while( money >= price){//2.循环条件部分

                //3.循环体代码
                num = money / price;//瓶数
                change = money % price;//零钱
                sum = sum + num ;//没次瓶数累加和
 题:个位数不为8的整数的累加值
    
     int sum = 0;
        for(int i = 1;i <= 100; i++){
            //限制条件:个位数不能为8
            if (i % 10 != 8){
                sum = sum +i;
            }
        }
        // 输出1-100以内的和
        System.out.println("1-100以内的尾数不为8的整数的和为:"+ sum);//4520

题: 求一下前100项所有是7包含7的倍数所有的整数的和  整数 % 7 ==0

    int sum = 0; //
        for (int i = 1 ; i <= 100 ; i++){
            //限制条件
            if (i % 7 == 0){
                sum = sum + i;
            }
        }
题: 正立的等腰三角形

               int line = 7; //行数为7
                for (int i = 1; i <= line ; i++){// i 行数  外层循环的变量
                     //内层循环  分成两部分: 空白  +  *
                     //空白部分  空格代替
                  for (int j = 1; j < line - i +1 ; j++ ){// j 空白  内层循环变量
                      // 输出空白部分
                      System.out.print(" ");//只输出空格不换行

                  }
                  // *的部分  *代替
                    for(int k = 1; k <= 2 * i - 1; k++){
                        //输出 * 的部分
                        System.out.print("*");//只输出*不换行

                    }
                    //当前面所有的信息输出完毕,此时换行
                    System.out.println();//换行不输出





                }

 

//输出前100项的7的倍数正整数的和
        System.out.println("前100项的7的倍数正整数的和为:"+ sum);

 

// 4.迭代部分
                money = num + change;//购买可乐的钱
          }

 

 

 

    

    

posted @ 2020-10-19 19:26  wajueji  阅读(299)  评论(0编辑  收藏  举报