【Java入门到精通】第6讲--循环结构

前言

    循环是程序中的重要流程结构之一。循环语句能够使程序代码重复执行,适用于需要重复一段代码直到满足特定条件为止的情况。所有流行的编程语言中都有循环语句。Java 中采用的循环语句主要有 for、while、和do-while 。另外 Java 5 之后推出了 for-each 循环语句,for-each 循环是 for 循环的变形,它是专门为集合遍历而设计的。for-each 并不是一个关键字。

一、Java中的循环

1.1 for循环

语法:

for(条件表达式1;条件表达式2;条件表达式3) {
    
    
    语句块;
}

for 循环中 3 个条件表达式的含义如表 1-1 所示。

表达式 形式 功能 举例
条件表达式 1 赋值语句 循环结构的初始部分,为循环变量赋初值 int i=1
条件表达式 2 条件语句 循环结构的循环条件 i>40
条件表达式 3 迭代语句,通常使用 ++ 或 – 运算符 循环结构的迭代部分,通常用来修改循环

for 关键字后面括号中的 3 个条件表达式必须用“;”隔开。for 循环语句执行的过程为:首先执行条件表达式 1 进行初始化,然后判断条件表达式 2 的值是否为 true,如果为 true,则执行循环体语句块;否则直接退出循环。最后执行表达式 3,改变循环变量的值,至此完成一次循环。接下来进行下一次循环,直到条件表达式 2 的值为 false,才结束循环,其运行流程如图 1-1 所示。
在这里插入图片描述

图 1-1 for循环执行流程图
**案例:** 计算 5 的阶乘。
public static void main(String[] args) {
    
    
    int result = 1;
    for (int number = 1; number <= 5; number++) {
    
    
        result *= number;
    }
    System.out.print("5 的阶乘结果是:" + result);   // 输出"5的阶乘结果是:120"
}

1.2 while循环

语法:

while(条件表达式) {
    
    
    语句块;
}

while 循环语句的执行流程如图 1-2 所示。
在这里插入图片描述

图 1-2 while 循环语句执行流程图

案例: 使用 while 语句计算 10 的阶乘。

public static void main(String[] args) {
    
    
    int i = 1;
    int n = 1;
    while(i <= 10) {
    
    
        n=n*i;
        i++;
    }
    System.out.println("10的阶乘结果为:"+n);
}

1.3 do-while循环

语法:

do {
    
    
    语句块;
}while(条件表达式);

以上语句的执行过程是,首先执行一次循环操作,然后再判断 while 后面的条件表达式是否为 true,如果循环条件满足,循环继续执行,否则退出循环。while 语句后必须以分号表示循环结束,其运行流程如图 1-3 所示。

在这里插入图片描述

图 1-3 do-while 循环语句的执行流程

案例: 编写一个程序,计算 10 的阶乘。使用 do-while 循环实现。

public static void main(String[] args) {
    
    
    int number = 1,result = 1;
    do {
    
    
        result*=number;
        number++;
    }while(number <= 10);
    System.out.print("10阶乘结果是:"+result);
}

1.4 foreach循环

语法:

for(类型 变量名:集合) {
    
    
    语句块;
}

其中,“类型”为集合元素的类型,“变量名”表示集合中的每一个元素,“集合”是被遍历的集合对象或数组。每执行一次循环语句,循环变量就读取集合中的一个元素,其执行流程如图 1-4 所示。

在这里插入图片描述

图 1-4 foreach 循环语句的执行流程图

案例: 假设有一个数组,采用 for 语句遍历数组的方式如下:

// 声明并初始化数组
int[] numbers = {
    
     43, 32, 53, 54, 75, 7, 10 };
System.out.println("----for----");
// for语句
for (int i = 0; i < numbers.length; i++) {
    
    
    System.out.println("Count is:" + numbers[i]);
}

二、循环嵌套

    Java 允许循环嵌套。如果把一个循环放在另一个循环体内,那么就可以形成嵌套循环。嵌套循环既可以是 for循环嵌套 while 循环,也可以是 while 循环嵌套 do-while 循环 …… 即各种类型的循环都可以作为外层循环,也可以作为内层循环。这里以for循环嵌套为例,嵌套循环的执行流程如图 2-1 所示。

在这里插入图片描述

案例: 使用嵌套循环输出九九乘法表

public static void main(String[] args) {
    
    
    System.out.println("乘法口诀表:");
    // 外层循环
    for (int i = 1; i <= 9; i++) {
    
    
        // 内层循环
        for (int j = 1; j <= i; j++) {
    
    
            System.out.print(j + "*" + i + "=" + j * i + "\t");
        }
        System.out.println();
    }
}

三、循环跳出语句

3.1 break语句

    break 用于完全结束一个循环,跳出循环体。某些时候需要在某种条件出现时强行终止循环,而不是等到循环条件为 false 时才退出循环。此时,可以使用 break 来完成这个功能。

案例: 小明参加了一个 1000 米的长跑比赛,在 100 米的跑道上,他循环地跑着,每跑一圈,剩余路程就会减少 100 米,要跑的圈数就是循环的次数。但是,在每跑完一圈时,教练会问他是否要坚持下去,如果回答 y,则继续跑,否则表示放弃。

public static void main(String[] args) {
    
    
    Scanner input = new Scanner(System.in); // 定义变量存储小明的回答
    String answer = ""; // 一圈100米,1000米为10圈,即为循环的次数
    for (int i = 0; i < 10; i++) {
    
    
        System.out.println("跑的是第" + (i + 1) + "圈");
        System.out.println("还能坚持吗?"); // 获取小明的回答
        answer = input.next(); // 判断小明的回答是否为y?如果不是,则放弃,跳出循环
        if (!answer.equals("y")) {
    
    
            System.out.println("放弃");
            break;
        }
        // 循环之后的代码
        System.out.println("加油!继续!");
    }
}

3.2 continue语句

    continue 语句是跳过循环体中剩余的语句而强制执行下一次循环,其作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。continue 语句类似于 break 语句,但它只能出现在循环体中。它与 break 语句的区别在于:continue 并不是中断循环语句,而是中止当前迭代的循环,进入下一次的迭代。简单来讲,continue 是忽略循环语句的当次循环。

下面看一个示例,代码如下:

int[] numbers = {
    
     1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
for (int i = 0; i < numbers.length; i++) {
    
    
    if (i == 3) {
    
    
        continue;
    }
    System.out.println("Count is: " + i);
}

注意:continue 语句只能用在 while 语句、for 语句或者 foreach 语句的循环体之中,在这之外的任何地方使用它都会引起语法错误。

猜你喜欢

转载自blog.csdn.net/qq_41250372/article/details/125451959