【Java学习】006_循环:for/while/do...while

【Java学习】006_循环:for/while/do…while

一、for循环

格式

for(初始化条件; 判断条件; 控制条件){
        语句体;
}

初始化条件:定义一个变量,并且赋值
判断条件:关系运算符
控制条件:自增+1
语句体:想要执行的内容

执行流程

初始化条件 --> 判断条件 --> 语句体 --> 控制条件  
           --> 判断条件 --> 语句体 --> 控制条件
           --> 判断条件 --> 语句体 --> 控制条件
           ……
           知道判断条件不满足,循环结束

举例

1. 在控制台打印出1~10的数字

package com02;

public class demo01 {
    public static void main(String[] args) {
        for(int i = 1; i <= 10; i++){
            System.out.println(i);
        }
    }
}

2. 在控制台打印出1~10的数字的和

package com02;

public class demo02 {
    public static void main(String[] args) {
        int sum = 0;
        for(int i = 1; i <= 10; i++){
            sum = sum + i;
        }
        System.out.println(sum);
    }
}

3. 在控制台打印出1~100之间的偶数

方式一:

package com02;

public class demo03 {
    public static void main(String[] args) {
        for(int i = 1; i <=100; i++){
            // 判断i是否为偶数
            if(i % 2 == 0){
                System.out.println(i);
            }
        }
    }
}

方式二:

package com02;

public class demo03 {
    public static void main(String[] args) {
        for(int i = 1; i <=100; i++){
            // 判断i是否为偶数
            if(i % 2 != 1){
                System.out.println(i);
            }
        }
    }
}

方式三:

package com02;

public class demo03 {
    public static void main(String[] args) {
        for(int i = 2; i <= 100; i+=2){
            System.out.println(i);
        }
    }
}

4. 在控制台打印出1~10之间的奇数的个数

package com02;

public class demo04 {
    public static void main(String[] args) {
        int count = 0;
        for(int i = 1; i <= 10; i++){
            if(i % 2 == 1){
                count++;
            }
        }
        System.out.println(count);
    }
}

二、while循环

格式

初始化条件;
while( 判断条件){
       语句体;
    控制条件;
}

初始化条件:定义一个变量,并且赋值
判断条件:关系运算符
控制条件:自增+1
语句体:想要执行的内容

执行流程

初始化条件 --> 判断条件 --> 语句体 --> 控制条件  
           --> 判断条件 --> 语句体 --> 控制条件
           --> 判断条件 --> 语句体 --> 控制条件
           ……
           知道判断条件不满足,循环结束

举例

1. 在控制台打印出1~10的数字

package com02;

public class demo05 {
    public static void main(String[] args) {
        int i = 1;
        while(i <= 10){
            System.out.println(i);
            i++;
        }
    }
}

2. 在控制台打印出1~10的数字的和

package com02;

public class demo06 {
    public static void main(String[] args) {
        int i = 1;
        int sum = 0;
        while(i <= 10){
            sum += i;
            i++;
        }
        System.out.println(sum);
    }
}

3. 在控制台打印出1~100之间的偶数

package com02;

public class demo07 {
    public static void main(String[] args) {
        int i = 1;
        while(i <= 100){
            // 判断是否为偶数
            if(i % 2 == 0){
                System.out.println(i);
            }
            i++;
        }
    }
}

4. 在控制台打印出1~10之间的奇数的个数

package com02;

public class demo08 {
    public static void main(String[] args) {
        int count = 0;
        int i = 1;
        while(i <= 10){
            if(i % 2 == 1){
                count++;
            }
            i++;
        }
        System.out.println(count);
    }
}

三、do…while循环

格式

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

初始化条件:定义一个变量,并且赋值
判断条件:关系运算符
控制条件:自增+1
语句体:想要执行的内容

执行流程

初始化条件 --> 语句体 --> 控制条件   --> 判断条件
            --> 语句体 --> 控制条件   --> 判断条件
           --> 语句体 --> 控制条件   --> 判断条件
           ……
           知道判断条件不满足,循环结束

举例

1. 在控制台打印出1~10的数字

package com02;

public class demo09 {
    public static void main(String[] args) {
        int i = 1;
        do{
            System.out.println(i);
            i++;
        }while(i <= 10);
    }
}

四、for/while/do…while循环的区别

do…while 与 for和while

do…while

语句体和控制条件至少会执行一次
语句体和控制条件和判断条件执行的次数是一样多的

for和while

语句体和控制条件可以一次都不执行
语句体和控制条件都比判断条件少执行一次

while与for

while

初始化条件在while循环结束之后,依然可以继续使用
语句体和控制条件和判断条件执行的次数是一样多的

for

初始化条件,一旦for循环结束,就不能用了

for(int i = 1; i <= 10; i++){

}
System.out.println(i);

变形写法:
int i;
for(int i = 1; i <= 10; i++){
}
System.out.println(i);

while与for使用建议

明确循环次数建议使用for
不明确循环次数建议使用while

五、死循环

package com02;

public class demo10 {
    public static void main(String[] args) {
        // 死循环
        for(;;){
            System.out.println("哈哈");
        }


        // 死循环
        while(true) {
            System.out.println("呵呵");
        }
    }
}

六、break和continue

break

可以使用在switch中,用来结束switch
也可以使用在循环中,用来结束循环(跳出循环)

continue

用在循环中,用来结束本次循环,继续下一次循环

注意:

在同一对花括号内,break和continue关键字的下面,不能有任何语句,因为永远都执行不到,会变异报错

七、循环嵌套

将一个循环放入到另一个循环中

外层循环控制行数,内层循环控制列数

例1:在控制台上打印出由*组成的矩形

**
**

**
**

package com02;

public class demo11 {
    public static void main(String[] args) {

        // 方式一:
        for(int i = 1; i <= 4; i++){
            System.out.println("****");
        }

        System.out.println();  // 为了换行
        System.out.println();  // 为了换行

        // 方式二:
        for(int j = 1; j <= 4; j++){
            System.out.print("*");
            System.out.print("*");
            System.out.print("*");
            System.out.print("*");
            System.out.println();  // 为了换行
        }

        System.out.println();  // 为了换行
        System.out.println();  // 为了换行

        // 方式三:
        for(int m = 1; m <= 4; m++){
            for(int n = 1; n <= 4; n++){
                System.out.print("*");
            }
            System.out.println();  // 为了换行
        }
    }
}

例2:在控制台上打印出由*组成的三角形形

*
**
***
**
***

package com02;

public class demo12 {
    public static void main(String[] args) {

        // 方式一:
        System.out.println("*");
        System.out.println("**");
        System.out.println("***");
        System.out.println("****");
        System.out.println("*****");

        System.out.println();  // 为了换行
        System.out.println();  // 为了换行

        // 方式二:
        for(int m = 1; m <= 5; m++){
            for(int n = 1; n <= m; n++){
                System.out.print("*");
            }
            System.out.println();  // 为了换行
        }
    }
}
点击查看

本文标题:【Java学习】006_循环:for/while/do...while

文章作者:Mango

发布时间:2023年08月20日 - 14:57:55

最后更新:2023年08月22日 - 14:59:34

原始链接:https://mango185.github.io/post/5489d185.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------------本文结束 感谢您的阅读-------------------