• for、while循环(java基础知识四)


    1.循环结构概述和for语句的格式及其使用

    * 什么是循环结构

      循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。

    循环语句的组成 初始化语句: 一条或者多条语句,这些语句完成一些初始化操作。 判断条件语句: 这是一个boolean 表达式,这个表达式能决定是否执行循环体。 循环体语句: 这个部分是循环体语句,也就是我们要多次做的事情。 控制条件语句: 这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。

    * 循环结构分类

    for(初始化语句;判断条件语句;控制条件语句){
        循环语句;
    }   
    
    初始化语句;
    while(判断条件语句){
        循环语句;
        控制语句;
    }   
    
    初始化语句;
    do{
        循环语句;
        控制语句;
    }while(判断语句);

    * 循环结构for语句的格式:

    for(初始化表达式;条件表达式;增量表达式) {
        循环体;
    }

    * 执行流程

    a:执行初始化语句
    b:执行判断条件语句,看其返回值是true还是false
    如果是true,就继续执行
    如果是false,就结束循环
    c:执行循环体语句;
    d:执行控制条件语句
    e:回到b继续。

    * 案例演示

    在控制台输出10次"helloworld"
    for(int x=1;x<=10;x++){
        System,out.println("HelloWorld!");
    }

    2.循环结构for语句的练习之获取数据

    * 案例演示

    需求:请在控制台输出数据1-10
    for (int x= 1;x<=10;x++){
        System.out.println(x);
    }
    
    需求:请在控制台输出数据10-1
    for (int x=10;x>=1;x--){
        System.out.println(x);
    }   

    * 注意事项

    a:判断条件语句无论简单还是复杂结果是boolean类型。
    b:循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略。
    c:一般来说:有左大括号就没有分号,有分号就没有左大括号

    3.循环结构for语句的练习之求和思想

    * 案例演示

    需求:求出1-10之间数据之和
    int sum = 0;
    for(int x=1;x<=10;x++){
        sum+=x;
    }
    System.out.println(sum);
    
    需求:求1-100之和
    int sum = 0;
    for(int x=1;x<=100;x++){
        sum+=x;
    }
    System.out.println(sum);
    
    需求:求出1-100之间偶数和
    /*int sum=0;
    for(int x=2;x<=100;x+=2){
        sum+=x; 
    }
    System.out.println(sum);
    */
    /*
    int sum=0;
    for(int x=1;x<=100;x++){
        if(x%2==0){
            system.out.println(sum);
        }
    }
    System.out.println(sum);
    */
    
    需求:求出1-100之间奇数和
    /*int sum=0;
    for(int x=1;x<=100;x+=2){
        sum+=x; 
    }
    System.out.println(sum);
    */
    /*
    int sum=0;
    for(int x=1;x<=100;x++){
        if(x%2!=0){
            system.out.println(sum);
        }
    }
    System.out.println(sum);
    */

    4.在控制台输出所有的”水仙花数”

    举例:153就是一个水仙花数。
    * 153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153
    for(int x=100;x<=999;x++){
        int ge = x%10;
        int shi = x/10%10;
        int bai = x/100;
        if (ge*ge*ge+shi*shi*shi+bai*bai*bai==x){
            System.out.println(x);
        }
    }

    5.统计思想

    需求:统计”水仙花数”共有多少个
    int count=0;
    for(int x=100;x<=999;x++){
        int ge = x%10;
        int shi = x/10%10;
        int bai = x/100;
        if (ge*ge*ge+shi*shi*shi+bai*bai*bai==x){
            //System.out.println(x);
            count++;
        }
    }
    System.out.println(count);   

    6.循环结构while语句的格式和基本使用

    * 循环while格式

    while循环的基本格式:
    while(判断条件语句) {
        循环体语句;
    }
    
    完整格式:
    初始化语句;
    while(判断条件语句) {
         循环体语句;
         控制条件语句;
    }

    * 执行流程

    a:执行初始化语句
    b:执行判断条件语句,看其返回值是true还是false
    如果是true,就继续执行
    如果是false,就结束循环
    c:执行循环体语句;
    d:执行控制条件语句
    e:回到b继续。

    * 案例演示

    需求:在控制台输出10次"helloworld"
    int x=1;
    while(x<=10){
        System.out.println("helloworld");
        x++;
    }
    
    需求:请在控制台输出数据1-10
    int x=1;
    while(x<=10){
        System.out.println(x);
        x++
    }

    * 求和、统计练习

    //求1-100之和
    int sum = 0;
    int x = 1;
    while(x<=100){
        sum+=x;
        x++;
    }
    
    //统计”水仙花数”共有多少个
    int count=0;
    int x=100;
    while(x<=1000){
        int ge = x%10;
        int shi = x/10%10;
        int bai = x/100;
        if (ge*ge*ge+shi*shi*shi+bai*bai*bai==x){
            count++;
    }
    System.out.println(count);

    * 7.循环结构do...while语句的格式和基本使用

    * 循环结构do...while语句的格式

    do {
        循环体语句;
    }while(判断条件语句);
    
    完整格式;
    初始化语句;
    do {
        循环体语句;
        控制条件语句;
    }while(判断条件语句);

    * 执行流程

    a:执行初始化语句
    b:执行循环体语句;
    c:执行控制条件语句
    d:执行判断条件语句,看其返回值是true还是false
    如果是true,就继续执行
    如果是false,就结束循环
    e:回到b继续。

    * 案例演示

    需求:在控制台输出10次"helloworld"
    int x=1;
    do{
        System.out.println(HelloWorld);
        x++;    
    }while(x<=10);
    需求:请在控制台输出数据1-10
    int x=1;
    do{
        System.out.println(x);
        x++;    
    }while(x<=10);

    8.循环结构三种循环语句的区别

    1.do...while循环至少执行一次循环体。
    2.而for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句。
    for循环和while循环的区别:
    A:如果你想在循环结束后,继续使用控制条件的那个变量,用while循环,否则用for循环。不知道用for循环。因为变量及早的从内存中消失,可以提高内存的使用效率。
    B:建议:
    如果是一个范围的,用for循环非常明确。
    如果是不明确要做多少次,用while循环较为合适。
    举例:吃葡萄。
    while(x != 0)

    9.循环结构注意事项

    死循环:
    写程序优先考虑for循环,再考虑while循环,最后考虑do…while循环。
    A:一定要注意控制条件语句控制的那个变量的问题,不要弄丢了,否则就容易死循环。
    B:两种最简单的死循环格式
        while(true){...}
        for(;;){...}

    10.循环案例

    * 需求:请输出一个4行5列的星星()图案。
       如图: 
        ***** 
        ***** 
        ***** 
        *****     
        注意: 
        System.out.println("");和System.out.print("");的区别
         println--打印结果换行; print----打印结果不换行。 
        for(int x=1;x<=4;x++){ 
            for(int y=1;y<=5;y++){ 
                System.out.println(""); 
            } 
        }                    
    需求:请输出下列的形状
    *
    **
    ***
    ****
    *****
    for(int x=1;x<=5;x++){
        for(int y=1;y<=x;y++){
            System.out.println("*");
        }
    }
    需求:在控制台输出九九乘法表。
    for(int x=1;x<=9;x++){
        for(int y=1;y<=x;y++){
            System.out.println(y+"*"+x+"="+y*x+"	");
        }   
    }

    11.控制跳转语句

    A:什么是控制跳转语句
    B:控制跳转语句的分类 *break continue return
    C:break的使用场景
    D:案例演示
      a:跳出单层循环
      b:跳出多层循环
      带标签的跳出---格式:标签名: 循环语句,标签名要符合Java的命名规则
    for(int x=1; x<=10; x++) {
        if(x%3==0) {
            //在此处填写代码
            //1.break;
            //2.contuine;
            //3.System.out.println(“Java基础班”);
        }
        System.out.println(“Java基础班”);
    }
    
    我想在控制台输出2次:“Java基础班“
    我想在控制台输出7次:“Java基础班“
    我想在控制台输出13次:“Java基础班“   
    A:return的作用
        返回
        其实它的作用不是结束循环的,而是结束方法的。
        return关键字不是为了跳转出循环体,更常用的功能是结束一个方法,也就是退出一个方法。跳转到上层调用的方法。
    B:案例演示
        return和break以及continue的区别?
        return是用来返回并结束方法的;
        break是将整个循环结束;用在switch语句和循环里,
        continue终止本次循环,继续下次循环;只能用在循环里。

    12.方法概述和格式说明

    * A:为什么要有方法
    * B:什么是方法
        * 方法就是完成特定功能的代码块
    * C:方法的格式
        
            * 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) {
                函数体;
                return 返回值;
            }
    
    * D:方法的格式说明
    
            方法格式解释:
            修饰符      比较多,后面会详细介绍。目前public static
            返回值类型  用于限定返回值的数据类型
            方法名      一个名称,为了方便我们调用方法
            参数类型    限定调用方法时传入参数的数据类型
            参数名     是一个变量,接收调用方法时传入的参数
            方法体     完成功能的代码
            return    结束方法以及返回方法指定类型的值 
            返回值     程序被return带回的结果,返回给调用者
    * A:如何写一个方法
        * 返回值类型 明确功能结果的数据类型
        * 参数列表 明确有几个参数,以及参数的类型
    
    * B:案例演示
        
            需求:求两个数据之和的案例
            public static int getSum(int x , int y){
                return x+y;
            }
    
    * C:有返回值类型的方法调用
        * a:单独调用,一般来说没有意义,所以不推荐。
        * b:输出调用,但是不够好。因为我们可能需要针对结果进行进一步的操作。
        * c:赋值调用,推荐方案。
    
    * D:没有明确返回值的函数调用:
        其实就是void类型方法的调用
        只能单独调用
    方法练习:
    需求:键盘录入两个数据,返回两个数中的较大值
            public static int getMax(int x , int y){
                return (x>y)?x:y;
            }
    
    需求:键盘录入两个数据,比较两个数是否相等
            public static boolean isEquals(int x , int y){
                return x==y;
            }
    方法注意事项:
        * a:方法不调用不执行
        * b:方法与方法是平级关系,不能嵌套定义
        * c:方法定义的时候参数之间用逗号隔开
        * d:方法调用的时候不用在传递数据类型
        * e:如果方法有明确的返回值,一定要有return带回一个值
    需求:根据键盘录入的行数和列数,在控制台输出星形
            public static void getSum(int a , int b){
                for(int x=1;x<a;x++){
                    for(int y=1;y<b;y++){
                        System.out.println("*");
                    }
                }
            }
    需求:根据键盘录入的数据输出对应的乘法表
            public static void getSum(int a , int b){
                for(int x=1;x<a;x++){
                    for(int y=1;y<b;y++){
                        System.out.println(y+"*"+x+"="+y*x+"	");
                    }
                }
            }

    13.方法重载和使用

    * A:方法重载概述
        * 在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
        与返回值类型无关,只看方法名和参数列表,
        在调用时,虚拟机通过参数列表的不同来区分同名方法.
    
    * B:方法重载:
        * 在同一个类中,方法名相同,参数列表不同。与返回值类型无关。
        
        * 参数列表不同:
            * A:参数个数不同
            * B:参数类型不同
            * C:参数的顺序不同(算重载,但是在开发中不用)
  • 相关阅读:
    301重定向将不带www的域名跳转到www的域名,403 Forbidden You don’t have permission to access the URL on this server
    js中几种动态创建元素并设置文本内容的比较,及性能测试。
    一道面试题:js返回函数, 函数名后带多个括号的用法及join()的注意事项
    js node.children与node.childNodes与node.firstChild,node,lastChild之间的关系
    js中继承的实现,原型链的知识点归纳,借用构造函数,组合继承(伪经典继承)
    前端知识点总结(HTML篇2)
    Css 编码规范
    两列布局:6种方法
    面试题--1
    前端知识点总结(综合篇)
  • 原文地址:https://www.cnblogs.com/wanghui1316/p/5427183.html
Copyright © 2020-2023  润新知