• Java基础--第五天


    教学流程:

    循环语句[for  while  do while]-----循环嵌套----实例应用

    内容总结:

    1:循环

      (1)如果我们发现有很多重复的内容的时候,就该考虑使用循环改进代码。

          让代码百年的简洁

      (2)循环的组成

        A:循环体,就是要做的事情。

        B:初始化条件。一般定义的是一个初始变量

        C:判断条件。用于控制循环的结束。

        D:控制条件。用于控制变量的变化。一般都是一个++/--操作。

      (3)循环的分类:

        A:for

          for(初始化条件;判断条件;控制条件)

          {

            循环体;

          }

        执行流程:

          a:先执行初始化条件;

          b:执行判断条件

          c:根据判断条件的返回值:

            true:执行循环体。

            false:就结束循环。

          d:最后执行控制条件。返回到b继续。

        B:while

          初始化条件;

          while(判断条件)

          {

            循环体;

            控制条件;

          }

          执行流程:

            a:先执行初始化条件;

            b:执行判断条件

            c:根据判断条件的返回值:

              true:执行循环体。

              false:就结束循环。

            d:最后执行控制条件。返回到b继续。

        C:do...while

          初始化条件;

          do{

            循环体;

            控制条件;

           }while(判断条件);

          执行流程:

            a:先执行初始化条件;

            b:执行循环体和控制条件;

            c:执行判断条件

            d:根据返回值

              true:返回b

              false:就结束循环。

            注意:

              a:一般使用for循环或者while循环。而且这两种循环是可以等价转换的。

              b:do...while循环至少执行一次循环体。一般不建议使用。

       (4)案例:

        A:请在控制台输出5"我爱Java"

    /*
        循环应用,for while do while
        扩充应用之前所学,从那键盘输入数据。
        for、while循环:
        for:预先知道循环应用的范围;
        while:不知道最后执行的次数,但是直到结束点。
        do while:先执行,后判断,一般不建议使用
    */
    
    import java.util.Scanner;
    class ManyTimes
    {
        public static void main(String[] args)
        {
            //多次输出结果的时候,需要用循环来控制
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入重复打印次数:");
            int runTimes = sc.nextInt();
    
            for(int x=0;x<runTimes;x++)
            {
                System.out.println("我爱Java!");
            }
            
            System.out.println("---------------------");
            int y=0;
            while(y<runTimes)
            {
                System.out.println("我爱Java!");
                y++;
            }
            System.out.println("---------------------");
    
            int z=0;
            do{
                System.out.println("我爱Java!");
                z++;
            }while(z<runTimes);
    
        }
    }

    B:1-10的和,改进位求1-100的和。

    C:1-100之间偶数的和。

    /*
        功能需求:    求1-100之和。
                    求1-100之间偶数和。
        思路:
        一、
            1,1-100的变量;
            2,和的累加
        二、在一的基础上,挑选出偶数
    */
    class NumberAdd
    {
        public static void main(String[] args)
        {
            //1,求1-100之和
            int sum = 0;
            for(int x=1;x<=100;x++)
            {
                sum += x;
            }
            System.out.println("1-100的和是:sum = "+sum);
    
            //2,求1-100的偶数和
            int result = 0;
            for(int x=1;x<=100;x++)
            {
                if(x%2==0)
                    result += x;
            }
            System.out.println("1-100的和是:result = "+result);
    
        }
    }

    D:5的阶乘。

    /*
        输入数据,得到阶乘结果
    */
    import java.util.Scanner;
    class JieCheng
    {
        public static void main(String[] args)
        {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入待计算阶乘的数:");
            int num = sc.nextInt();
    
            int result = 1;
            for(int x=1;x<=num;x++)
            {
                result *= x; 
            }
            System.out.println(num+"! ="+result);
        }
    
    }

    E:水仙花。

    /**
    打印出所有的"水仙花数"。
    所谓“水仙花数”是指一个三位数,其每一位数字立方和等于该数本身。例如:
    153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 
    
    提示:
    1:采用循环取得所有的三位数。(三位数指的是100-999之间的数)。
    2:把每个三位数的个位,十位,百位进行分解。
    
        输出水仙花数:
        100-999之间,每个位上的数的立方和等于这个数的本身的数
    思路:
        1,确定范围,使用合适的循环体;
        2,对这个数进行每个位的拆解,除与模联合使用
        3,进行判断
    */
    
    class FlawerDemo 
    {
        public static void main(String[] args) 
        {
            for(int x=100;x<1000;x++)
            {
                int bai = x/100;
                int shi = x/10%10;
                int ge = x%10;
                if(x == bai*bai*bai+shi*shi*shi+ge*ge*ge)
                System.out.println(x+"	"+"for循环");
            }
            System.out.println("****************************");
            
            int firstNum = 100;
            while(firstNum<1000)
            {
                int bai = firstNum/100;
                int shi = firstNum/10%10;
                int ge = firstNum%10;
                if(firstNum == bai*bai*bai+shi*shi*shi+ge*ge*ge)
                System.out.println(firstNum+"	"+"while循环");
                firstNum++;
            }
            System.out.println("****************************");
            
            firstNum = 100;
            do
            {
                int bai = firstNum/100;
                int shi = firstNum/10%10;
                int ge = firstNum%10;
                if(firstNum == bai*bai*bai+shi*shi*shi+ge*ge*ge)
                System.out.println(firstNum+"	"+"do while循环");
                firstNum++;
            }while(firstNum<1000);
            System.out.println("****************************");
        }
    }

    F:统计叠多少次,能叠成珠穆朗玛峰的高度。

    /*
        珠峰高度是8848米,一张足够大的纸厚度为0.01米,
        折叠多少次,有珠峰这个高度
    */
    class MoutainDemo 
    {
        public static void main(String[] args) 
        {
            double height = 0.01;
            int count = 0;
            while(height <= 8848)
            {
                height *=2;
                count++;
            }
            System.out.println("总共叠加次数:"+count);
        }
    }

        (5)循环嵌套:

          A:也就是循环语句的循环体是一个循环语句。

          B:通过输出 我们不断的改进。发现了一个问题:外循环控制行数,内循环控制列数。

        (6)案例:

          A:正三角形

            内循环的判断条件:y<=x

          for(int x=0; x<5; x++)

          {

            for(int y=0; y<=x; y++)

            {

              System.out.print("*");

            }

              System.out.println();

          }

          B:倒三角形

            内循环的初始化条件:y=x

          for(int x=0; x<5; x++)

          {

            for(int y=x; y<5; y++)

            {

              System.out.print("*");

            }

              System.out.println();

          }

          C:九九乘法表

    /**
        循环嵌套使用
        注意事项:
            1,外层循环控制行数,内存循环控制列数;
            2,换行:System.out.prinlt("
    ");//System.out.prinltln();
            3,可以考虑进行方法封装。
    */
    
    class ForDouble
    {
        public static void main(String[] args) 
        {
            for(int x=0;x<6;x++)
            {
                for(int y=0;y<5;y++)
                {
                    System.out.print("*");
                }
                System.out.print("
    ");//System.out.println();
            }
            //System.out.println("Hello World!");
    
    
            //经典实例:九九乘法表
            for(int i=1;i<=9;i++)
            {
                for(int j=1;j<=i;j++)
                {
                    System.out.print(i+"*"+j+"="+i*j+"    ");
                }
                System.out.println();
            }
    
            for(int i=1;i<=9;i++)
            {
                for(int j=1;j<=i;j++)
                {
                    System.out.print(j+"*"+i+"="+i*j+"    ");
                }
                System.out.println();
            }
    
            //调用方法,输出矩形
            printStart(8,5); 
            printStart(6,9);
        }
    
        public static void printStart(int row,int line)
        {
            for(int i=0;i<row;i++)
            {
                for(int j=0;j<line;j++)
                {
                    System.out.print("*");
                }
                System.out.print("
    ");
            }
        }
    }

    2breakcontinue

      (1)有些时候,我们需要对循环进行一些控制终止,这个时候,就出现了两个关键字:

        breakcontinue

      (2)特点:

        A:它们都必须在循环中(break还可以在switch中。)

            一般在循环的判断中。

        B:如果单独使用breakcontinue,后面是不能有语句的。

      (3)区别:

        A:break 结束当前循环。

        B:continue 结束本次循环,进入下一次循环。

      (4)如何退出嵌套循环:

        用带标签的循环。

        格式:

        标签名:for(){

            for(){

                if()

                {

                  break 标签名;//continue也能用,但是注意别形成死循环

                }

              }

             }

    3:应用场景

      (1)变量:发现有一个数据是变化的时候,就要用变量。

      (2)if语句:如果是一个范围的判断,boolean类型的表达式的判断,几个数据的判断。

      (3)switch语句:几个数据的判断。一般这种情况,有限选择switch

      (4)for语句:如果次数或者范围特别明确。(水仙花)

      (5)while语句:如果次数或者范围不明确。(珠穆朗玛峰)

  • 相关阅读:
    jQuery 小特效【文本框折叠隐藏,展开显示】【下拉菜单】【颜色渐变】【弹窗+遮罩】
    jQuery 【事件】【dom 操作】
    jQuery 【选择器】【动画】
    LINQ 小项目【组合查询、分页】
    LINQ 【高级查询】
    LINQ 【增、删、改、查】数据绑定
    WebFrom 【文件上传】
    【转】c# 字符串大小写混合转换
    【转】C#之继承
    类库,通用变量,is/as运算符,委托。
  • 原文地址:https://www.cnblogs.com/zhidianhcuan/p/4343215.html
Copyright © 2020-2023  润新知