循环结构(for循环、while循环)


循环结构(for循环、while循环)

1、含义:
   循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
2、分类:
    1、for循环
    2、while循环
        --do...while循环
3、循环语句的组成
    ①初始化语句:
        一条或者多条语句,这些语句完成一些初始化操作。
    ②判断条件语句:
        这是一个boolean 表达式,这个表达式能决定是否执行循环体。
    ③循环体语句:
        这个部分是循环体语句,也就是我们要多次做的事情。
    ④控制条件语句:
        这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。

for循环

1、for循环:
    语句格式:
        for(初始化语句;判断条件语句;控制条件语句){
            循环体代码;
        }
2、执行流程:
    A:执行初始化语句,只执行了一遍
    B:执行判断条件语句,看其结果是true还是false
        如果是false,循环结束。
        如果是true,继续执行。
    C:执行循环体语句
    D:执行控制条件语句
    E:回到B继续      
3、例:打印10行HelloWorld
方法一:
public class ForDemo1 {
    public static void main(String[] args) {
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
方法二:利用for循环
public class ForDemo1 {
    public static void main(String[] args) {
     for(int i=1;i<=10;i++){
            System.out.println("HelloWorld");
        }
    }
}
解释说明:①int i=1; 初始化值的作用,因为我们要打印10句HelloWorld,从第一次开始,所以我们需要定义一个变量			int类型的变量去开始计数,表示第几次循环
        ②i<=10; 条件判断语句,这个语句使用控制是否进入循环的条件
        ③i++ 控制循环体中的条件的变化,在这里表示的是,每循环一次,i++

4、/*
    使用for循环的注意事项
        1、条件判断语句只能是boolean类型
        2、当循环体的语句只有一条的时候,可以省略大括号,如果循环体的语句有多条的时候,这时候需要添加大括			  号,如果不添加循环语句只针对第一条语句有效(建议,永远不要省略大括号)
        3、如果在小括号后加分号,默认有一个空语句体,后面的代码为正常的代码块,不参与循环
        4、初始化语句可以不在for循环中的小括号中体现,但是必须在使用之前定义好
        5、条件判断语句可以删除,但是删除之后,就没有了控制循环结束的条件,就变成了死循环
        6、控制条件语句删除之后,也变成了死循环,你可以删除,但是初始化的变量的值一定
            要在循环体中发生变化。
 */
public class ForDemo2 {
    public static void main(String[] args) {

        int i = 1;
        for (;i <= 10; ) {
            System.out.println("数加");
            i++;
        }

    }
}

while循环

   1、while循环
            语句格式:
        (1)简化格式:
                    while(关系表达式){
                        循环体语句;
                    }
         (2)完整格式:
                    初始化语句;
                    while(关系表达式){
                        循环体语句;
                        控制条件语句;
                    }
        结论:for循环可以等价转换为while循环

     2、执行流程
                1、先执行初始化语句
                2、判断关系表达式的结果,
                    如果是true,进入while循环,执行循环体内容
                    如果是false,就不进入while循环,不执行循环体内容
                3、如果进入循环体内容,执行循环体代码和控制条件语句
                4、知道关系表达式的结果为false,终止while循环

      3、死循环介绍:
            for(;;){}
            while(true){}

 4、例:打印10遍HelloWorld
 */
public class WhileDemo1 {
    public static void main(String[] args) {
        //需求:打印10遍HelloWorld
        System.out.println("===============用for循环实现===============");
        for(int i=1;i<=10;i++){
            System.out.println("HelloWorld");
        }

        System.out.println("===============用while循环实现===============");
        int i=1;
        while (i<=10){
            System.out.println("HelloWorld");
            i++;
        }

        System.out.println("=============死循环================");
        int i1 = 0;
        while (true){
            System.out.println("这是死循环"+i1);
            i1++;
        }
    }
}
5、while循环与for循环的区别:
		for循环结束后,在for循环中定义的初始化变量在外部无法使用,while循环结束后,由于初始化值变量是在	  	 while循环外部定义的,所以在while循环外部可以访问到。
	例:
     */
public class WhileDemo2 {
    public static void main(String[] args) {
        System.out.println("for循环实现");
        for(int i=1;i<=10;i++){
            System.out.println(i);
        }

//        System.out.println(i);
        System.out.println("while循环实现");
        int i1 = 1;
        while (i1<=10){
            System.out.println(i1);
            i1++;
        }

        System.out.println(i1);

    }
}

输出结果位:
for循环实现
1
2
3
4
5
6
7
8
9
10
while循环实现
1
2
3
4
5
6
7
8
9
10
11

do...while循环

1、语句格式:
       (1) 基本格式
            do {
                循环体语句;
            }while(判断条件语句);

       (2) 扩展格式(开发中使用扩展格式)
            初始化语句;
            do {
                循环体语句;
                控制条件语句;
            } while(判断条件语句);
2、例:统计1-10之和
public class DoWhileDemo1 {
    public static void main(String[] args) {
        //统计1-10之和
        int sum = 0;
        int i = 1;
        do {
            sum = sum + i;
            i++;
        } while (i <= 10);

        System.out.println("1-10之和为:" + sum);
    }
}
3、debug查看运行过程
1、先在左边将你要查看流程的代码标红
2、右击debug
3、点一次》,执行一次步骤,观察执行流程和变量值的变化

debug的好处
让我们更加清晰地明白程序是如何执行的,以及变量是如何变化的
4、 do...while和while区别
/*
        (1)while循环,执行的时候,会先进行一次判断,如果是true才执行循环体
        (2)do...while循环,执行的时候,会先执行一次循环体内容,然后再判断是true还是false

        写程序优先考虑for循环,再考虑while循环,最后考虑do…while循环。
 */
public class DoWhileDemo3 {
    public static void main(String[] args) {
        int i = 0;
        while (i>0){
            System.out.println(i);
            i--;
        }
        System.out.println("============do...while循环============");

        do{
            System.out.println(i);
            i--;
        }while (i>0);

    }
}