栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java | 流程控制-循环控制

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java | 流程控制-循环控制

目录

一、循环语句 for

二、循环语句 while

三、循环语句 do...while

四、多重循环

五、跳出语句

5.1 break

5.2 continue


控制条件语句所控制的变量,在for循环结束后,就不能再被访问,而while循环结束还可以继续使用。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。在已知循环次数的时候使用推荐使用for,循环次数未知的时推荐使用while。

一、循环语句 for
for(初始化表达式①; 布尔表达式②; 步进表达式④){ 
    循环体③ 
}

循环结构的基本组成部分,一般可以分成四部分:

  • 初始化语句:在循环开始最初执行,而且只做唯一一次。
  • 条件判断:如果成立,则循环继续;如果不成立,则循环退出。
  • 循环体:重复要做的事情内容,若干行语句。
  • 步进语句:每次循环之后都要进行的扫尾工作,每次循环结束之后都要执行一次。

循环条件是返回一个布尔值的表达式。

for(;循环判断条件;)中的初始化和变量迭代可以写到其它地方,但是两边的分号不能省略。

循环初始值可以有多条初始化语句,但要求类型一样,并且中间用逗号隔开,循环变量迭代也可以有多条变量迭代语句,中间用逗号隔开。

执行流程:

执行顺序:①②③④>②③④>②③④…②不满足为止

  1. ①负责完成循环变量初始化
  2. ②负责判断是否满足循环条件,不满足则跳出循环
  3. ③具体执行的语句
  4. ④循环后,循环条件所涉及变量的变化情况
package javase;
public class For01 {
    public static void main(String[] args) {
        // 打印10句“我爱你”
        for (int i = 0; i < 10; i++) {
            System.out.println("我爱你" + i);
        }
        // 初始化语句和步进表达式可以不写
        int a = 0;
        for (; a < 10; ) {
            System.out.println("我不爱你" + a);
            a++;
        }
        // 死循环, 可以使用break跳出
        for (; ; ) {
            break;
        }
        // 初始化和步进表达式可以多句,用逗号分隔
        for (int i = 0, j = 0; i < 10; i++, j += 2) {
            System.out.println("i = " + i + ", j = " + j);
        }
    }
}

二、循环语句 while
初始化表达式① 
while(布尔表达式②){ 
    循环体③ 
    步进表达式④ 
}

while 循环是先判断再执行语句

执行流程:

执行顺序:①②③④>②③④>②③④…②不满足为止。

  1. ①负责完成循环变量初始化。
  2. ②负责判断是否满足循环条件,不满足则跳出循环。
  3. ③具体执行的语句。
  4. ④循环后,循环变量的变化情况。

public class While01 {
    public static void main(String[] args) {
        // 输出10句我爱你
        int i = 1;
        while (i <= 10) {
            System.out.println("我爱你" + i++);
        }
        // 输出1-100能被3整除的数
        int num = 1;
        while (num <= 100) {
            System.out.print(num % 3 == 0 ? num + "  " : "");
            num++;
        }
    }
}

三、循环语句 do...while
初始化表达式① 
do{ 
    循环体③ 
    步进表达式④ 
}while(布尔表达式②); 

do...while 循环先执行,再判断,一定且至少执行一次。最后有个分号。

执行流程:

执行顺序:①③④>②③④>②③④…②不满足为止。

  1. ①负责完成循环变量初始化。
  2. ②负责判断是否满足循环条件,不满足则跳出循环。
  3. ③具体执行的语句
  4. ④循环后,循环变量的变化情况

public class DoWhile01 {
    public static void main(String[] args) {
        // 输出10次我爱你
        int i = 1;
        do {
            System.out.println("我爱你" + i++);
        } while (i <= 10);
        // 统计1-200之间,能被5整除,但不能被3整除的数
        int count = 0;
        i = 1;
        do {
            if (i % 5 == 0 && i % 3 != 0) {
                System.out.print(i + "  ");
                count++;
            }
        } while (++i <= 200);
        System.out.println("count = " + count);

        Scanner scanner = new Scanner(System.in);
        char a;
        do {
            System.out.println("还钱吗?(y/n)");
            a = scanner.next().charAt(0);
            if (a != 'y') {
                System.out.println("抽死你个小王八犊子");
            }
        } while (a != 'y');
    }
}

四、多重循环

将一个循环放在另一个循环体内,就形成了嵌套循环。其中 for,while,do…while 均可以作为外层循环和内层循环。

嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为 false 时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环。

设外层循环次数为 m 次,内层为 n 次,则内层循环体实际上需要执行 m*n 次。

public class MulForExercise {
    public static void main(String[] args) {
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= 9; j++) {
                if (j <= i){
                    System.out.print(j + " * " + i + " = " + (i * j) + "t");
                }
            }
            System.out.println();
        }
    }
}

五、跳出语句

Java 还提供了一种带标签的 break语句,用于跳出多重嵌套的循环语句。标签必须放在希望跳出的最外层循环之前, 并且必须紧跟一个冒号。可以将标签应用到任何语句中, 甚至可以应用到 if语句或者块语句中。continue同理。

跳出语句出现在多层嵌套的语句块中,可以通过标签指明要跳出的是哪一层语句块。如果没有标签,默认退出最近的循环体。跳出语句后指定哪一个标签,就退出到哪里。

Scanner in = new Scanner(System.in);
int n;
read_data:
while (. . .) // 会跳出这个循环
    for (. . .) { // 不会跳出这个循环
        Systen.out.print("Enter a number >= 0: ");
        n = in.nextlntO;
        if (n < 0) 
            break read_data; // 如果条件成立,则跳出read_data的循环
    }
}
if (n < 0) { // 跳出后开始执行此行
    // 处理不好的情况
} else {
    // 进行正常处理
}

5.1 break

break 语句用于终止某个语句块的执行,一般使用在 switch 或者循环 for,while,do-while中。

{
    // 代码
    break; 
    // 代码
}
public class Break01 {
    public static void main(String[] args) {
        // 1-100以内的数求和,当和第一次大于20时的数字是多少
        int sum = 0;
        for (int i = 1; i <= 100; i++) {
            if ((sum += i) >= 20) {
                System.out.println("当前数是:" + i);
                System.out.println("和是:" + sum);
                break;
            }
        }
        Scanner scanner = new Scanner(System.in);
        for (int i = 2; i >= 0; i--) {
            System.out.print("请输入用户名:");
            String username = scanner.nextLine();
            System.out.print("请输入密码:");
            String password = scanner.nextLine();
            if ("丁真".equals(username) && "666".equals(password)) {
                System.out.println("登陆成功!");
                break;
            } else {
                System.out.println("密码错误!!还有" + i + "次机会");
            }
        }
    }
}

5.2 continue

结束本次循环,继续下一次的循环

public class Continue0 {
    public static void main(String[] args) {
        label1:
        for (int i = 0; i < 4; i++) {
            lable2:
            for (int j = 0; j < 5; j++) {
                if (j == 2) {
                    // continue;    该写法和continue lable2;等价
                    // continue lable2;
                    continue label1;
                }
                System.out.println("j = " + j);
            }
        }
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/361563.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号