专业的JAVA编程教程与资源

网站首页 > java教程 正文

Java入门!认识更加简洁的循环,for 循环语句「第11集」

temp10 2024-11-03 15:06:54 java教程 12 ℃ 0 评论

在上一小节中,我们学习了while方式的循环,也了解了循环的概念,这小节我们来学习一种特殊的while循环,也是被使用最广泛的循环-for循环


Java入门!认识更加简洁的循环,for 循环语句「第11集」

for 循环语法

for (变量声明; 条件; 迭代语句) {
    //循环体
}

在关键字 for后面的括号中,会有三个语句

1. 第一个语句是变量声明语句,允许声明一个或多个整型变量

2. 第二个语句是条件,条件的检测方式与while循环相同(每次循环开始前判断条件成立与否)。如果条件是true,则将执行循环体内的代码;然后执行迭代语句,再次请求条件,依次循环,直到条件false为止

3. 第三个语句是迭代语句,虽然可以是任何语句,但该语句通常用于递增或递减变量。

for 循环流程图


示例1


public class ForLoop1 {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i ++) {
            System.out.println("今天天气不错");
        }
    }
}

解析:

在上面的示例中,我们有

  • 初始化表达式:int i = 1
  • 测试表达式:i < = 5
  • 更新表达式:i++

在此,最初i的值为 1。因此,测试表达式首次求值为true。 因此,将执行打印语句。 现在,将求值更新表达式。

每次求值更新表达式时,i的值增加 1。再次,求值测试表达式。 并且,重复相同的过程。

该过程一直进行到i为 11 时。当i为 11 时,测试表达式(i <= 10)为false,并且for循环终止。

有关的表达式及求值方式,在我们之前的文章中已经学过,不够熟悉再看一下之前的文章。

示例2

public class ForLoop2 {
    public static void main(String[] args) {
        int sum = 0; // 累加和
        for (int i = 1; i <= 100; i ++) {
            sum += i; // 加和赋值运算
        }
        System.out.println("1到100的累加和为:" + sum);
    }
}


解析:

1. 在执行循环体前,会先执行括号中的变量声明语句int i = 1,它定义了一个计数器变量i并且赋值为1(注意这个语句只执行一次)。

2. 然后会执行条件判断语句i <= 100,显然条件成立,执行循环体,循环体执行完成后会才会执行括号中的第三个语句i ++,再次判断条件是否成立,直到当i的值为100时,

3. 最后一次执行循环体,这个时候i再次自增1为101,条件不成立,结束循环。

1st 变量: i = 1 and sum = 0+1 = 1
2nd 变量: i = 2 and sum = 1+2 = 3
3rd 变量: i = 3 and sum = 3+3 = 6
4th 变量: i = 4 and sum = 6+4 = 10
... .. ...

100th 变量: i = 100 and sum = 4950 + 100 = 5050

实际使用中,通常使用for循环来遍历一个数组,我们将在 Java 数组小节举例介绍。

怪异使用

for循环还可以缺省变量声明语句、循环条件和迭代语句,如以下代码:

// 缺省变量声明语句
for (int i = 0; ; i ++) {
    // 语句
}

// 缺省循环条件语句和迭代语句
for (int i = 0; ; ) {
    // 语句
}

// 缺省所有语句 - 无限循环
for (;;) {
    // 语句
}

但请注意,通常情况下不建议这样写。我们在这里提一下,只是希望大家看到类似的用法,不要认为是错的。

for each 循环

由于学习 for each 循环需要一些数组和集合的前置知识,我们将会在 Java 数组小节举例讲解。

break 和 continue 关键字

我们可以在循环体中使用这两个关键字来重定向程序执行流。通过以下例子我们体会一下。

break

代码:

public class BreakKeywords1 {
    public static void main(String[] args) {
        for (int i = 1; i <= 10; i ++) {
            if(i == 3) { // 条件语句
                System.out.println("当i等于3时,终止循环!");
                break;
            }
            
            System.out.println("第"+i+"次循环");
        }

        System.out.println("没有循环啦");
    }
}

解析:

循环打印数字的代码,当循环到达第3次迭代时,执行条件分支中的语句,将终止循环

注意:break语句通常配合if语句使用。

continue

代码:

public class BreakKeywords1 {
    public static void main(String[] args) {
        for (int i = 1; i <= 10; i ++) {
            if(i == 3) { // 条件语句
                System.out.println("当i等于3时,不要执行本次循环!");
                break;
            }
            System.out.println("第"+i+"次循环");
        }

        System.out.println("没有循环啦");
    }
}

解析:

只是跳过当次循环,继续执行下一次循环。continue语句只能跳过它自己所在位置的循环。

小结

本节我们依次介绍了Java中的特殊循环结构:for循环以及for each循环。并且介绍了break和continue关键字在循环中的使用。

在使用循环结构编写业务代码时,为了避免死循环,一定要确保循环条件能够被影响。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表