zoukankan      html  css  js  c++  java
  • 循环结构-for,while,do-while

    for,while,do-while
    
    >完整的循环应该包含以下四个部分:
    
    初始化语句:初始化工作,在循环体开始之前执行
    
    条件表达式:一个boolean表达式,决定是否执行循环体
    
    循环体:反复执行的部分
    
    循环变量控制语句(迭代语句):在循环体执行完之后执行,然后再去判断循环条件,一般用来控制循环条件中的变量,使循环在合适的时候结束
    
    ###for循环
    >格式
    
            for(初始化表达式;条件表达式;循环变量控制语句){
            循环体语句;
            }
    
    特殊格式
     
            for(;;){
            
            }
    >for运行的顺序:
            
            1.执行初始化表达式,只执行一次,通常是定义循环变量语句
            2.判断循环条件:为真就往下执行;为假就结束循环
            3.执行循环体语句
            4.执行循环变量控制语句,一般是循环变量的自增或自减
            5.回到第2步,重复这个过程,直到为假时结束
    >for循环注意事项:
    
            1.循环变量通常定义为int型,因为最常用的就是int型
            2.循环条件判断的结果是boolean类型值
            3.小括号中的分号不能写成中文的分号
            4.如果循环体只有一条语句的话,可以省略大括号,但建议写全
            5.循环变量控制语句不必每次改变1,根据情况,可以是任意值
    
    
    ###While循环
    >格式
    
        [初始化语句]
        while(条件表达式){
        循环体语句;
        [循环变量控制语句]
        }
    
    特殊格式
    
        while(true){
            if(...){//退出循环;break}
            }
    >执行流程:
    
        1.执行初始化语句(如果有的话)
        2.判断条件表达式真假:如果真,往下执行;如果假,结束循环
        3.执行循环体语句
        4.执行循环变量控制语句(如果有的话)
        5.返回第2步,重复执行,直到条件为假,结束循环
    
    
    >循环变量的使用问题
    
            for循环的循环变量,一般情况下在循环外是不能访问到的,
            因为它的作用域是在for循环的{}之内,
            但是可以通过把循环变量定义在外边来实现这个功能;
            或者定义计数器
            for(int i = 0;i<10;i++){
            ...
            }
            System.out.println(i);//NG报错
            
            /*正确模式
            int i = 0;
            for(;i<10;i++){
            ...
            }
            System.out.println(i);//OK
            */
    #
    
            while循环本身就把循环变量定义在循环之外,所以没有这个问题
            int i = 0;
            while(i<10){
                ...
            i++;
            }
            System.out.println(i);
    
    >for 和 while的应用场景
    
        for循环和while循环一般情况下是可以互换的.
        1.当明确知道循环的范围的时候,通常使用for
        2.当不明确循环次数的时候,for和while都可以,通常使用while
    
    ###do-While循环
    
        [初始化语句]
        do    {
        循环体语句;//至少被执行一次
        [循环变量控制语句]
        }while(条件表达式);
    >eg1:
     
         //在控制台上依次打印1-10
             public class PrintDemo{
                public static void main(String[] args){
                    for(int i = 1;i<=10;i++){
                        System.out.println(i);
                    }
                }
            }
    
    >eg2:
     
        //求1-10的和
             public class SumDemo{
                public static void main(String[] args){
                    int sum=0;
                    for(int i = 1;i<=10;i++){
                        sum+=i;                    
                    }
                    System.out.println(sum);
                }
                
            }
        
    >eg3:
        
        //求水仙花数:位数,各个位上数字的立方和等于这个数本身,例:153
    
            public class FlowerDemo{
                public static void main(String[] args){
                    int sum=0;
                    for(int i = 100;i<=999;i++){
                        int bai = i / 100;
                        int shi = i /10 %10;
                        int    ge = i %100 %10;
                            if(bai*bai*bai+shi*shi*shi+ge*ge*ge==i){
                                System.out.println(i);
                            }            
                    }                
                }            
            }
    >eg4:
    
        //统计1000以内,同时是3,5,7的倍数的数有多少个?
          /*
           在1-100之间,若是3的倍数,则在它之后输出中文“三”,
          若是5的倍数,则在它之后输出中文“五”,
           若是7的倍数,则在它之后输出中文“七”
        */
    
        public class Multiple_3_5_7{
        public static void main(String[] args){
            for(int i= 1;i<=100;i++ ){
                System.out.print(i);
                if (i % 3 == 0){
                    System.out.print(" 三 ");
                }    
                
                if(i % 5 == 0){
                        System.out.print("五");
                    }
                if(i % 7 == 0){
                        System.out.print("七");                        
                }System.out.println("");
            }
        }
    }
  • 相关阅读:
    设计模式_享元设计模式(flyweight)
    eclipse的使用
    Bank项目
    反射练习
    反射接口
    反射
    32-一笔画(欧拉图)
    67-蓝桥省赛-2014
    13-STL-二分查找
    31-最长公共子序列
  • 原文地址:https://www.cnblogs.com/leo9257/p/8733664.html
Copyright © 2011-2022 走看看