10. Java循环语句 6个月前

编程语言
733
10. Java循环语句

Java 循环结构 - for, while 及 do...while

前面我们学习的条件语句都是顺序结构,如果想要执行一个操作多次,就需要用到循环结构

循环结构可以根据条件成立时,执行循环,条件不成立时,终止循环

Java的循环可以分为以下 3 种:

  • for
  • while
  • do ... while

本小节除了介绍这 3 种循环结构之外,还会介绍 continuebreak 这 2 个关键字

for 循环

语法:

for(初始化 ; 条件 ; 更新){
    //循环体
}

for 循环使用计数器实现循环,在 for 的条件中

  • 第 1 步:进行计数器的初始化

  • 第 2 步:进行条件判断,如果为 true ,执行循环体内的代码

  • 第 3 步: 执行完循环体内的代码之后,计数器会进行更新操作,

    更新完计数器之后,会再执行2第步,第3步,一直到条件为 false , 跳出循环

下面用一个示例来演示 for 的用法 :

示例1:

public class HelloWorld {

    public static void main(String[] args) {

        for ( int i = 1 ; i <= 5; i++){
            System.out.println("www.helloworld.net");
        }
        
    }
}

//输出如下:
www.helloworld.net
www.helloworld.net
www.helloworld.net
www.helloworld.net
www.helloworld.net

由上面的例子可以知道:

  1. i 初始化为 1
  2. 判断 i <= 5 是否成立
  3. i <= 5 成立后,执行打印操作
  4. 打印完之后,执行 i++ 操作,也就是更新计数器,更新完之后, i 的值为 2
  5. 此时判断 2 <= 5 是否成立,显然成立 ,则再次打印
  6. 打印完之后,会再执行 i++ ,也就是更新计数器,更新完之后, i 的值为 3
  7. 此时判断 3 <= 5 是否成立,显然成立,则再次打印
  8. 此后的步骤就是一直执行 2,3,4 的步骤
  9. 直接最后, i++ 之后,i 的值为 6 , 已经不满足 i <= 5 的条件了,跳出循环,结束。

再来看一个例子,用 for 求 1 到100的和

示例2:求 1到100的和

public class HelloWorld {

    public static void main(String[] args) {

        int sum = 0;
        for (int i = 1; i <= 100; i++) {
            sum = sum + i;
        }

        System.out.println(sum);
    }
}

//输出 : 5050

从上面可知,for循环了100次,计数器分别从1累加到100

我们在每次的循环的时候,把 i 的值累加到 一个变量 sum 中去

当循环结束的时候,正好从 1 加到 100了。

Java增强 for 循环

Java5 中引入了一个增强版的 for 循环,可以更加方便的对数组,集合进行循环遍历

语法如下:

for(声明语句 : 表达式) {
   //代码句子
}

声明语句:声明新的局部变量,该变量的类型必须和数组或者集合中的元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。

表达式:表达式是要访问的数组或者集合,或者是返回值为数组或集合的方法。

数组和集合还没有讲到,可以先看一下示例试着理解一下

后面章节讲到数组和集合的时候,会再讲一次

先看一个示例:

public class HelloWorld {

    public static void main(String[] args) {

        //定义一个数组,并初始化
        //此数组中有 3 个元素
        String[] sites = new String[]{"www.helloworld.net","www.baidu.com","www.qq.com"};

        for (String site : sites) {
            System.out.println(site);
        }
    }
}

从上面可以看出,for 循环的步骤如下:

  1. 定义一个 site 变量,String类型的,因为要和数组中的元素的类型相同

  2. 每次都会把 sites 数组中的元素依次赋值给 site

    String site : sites 这一句就是不停的把sites 中的元素赋值给 site,然后执行循环体

  3. 打印 site

while 循环

while 的英文意思是 在……时候 , 所以,while循环也是当 条件成立 时,执行循环体

语法如下:

while( 布尔表达式 ) {
  //循环内容
}

看下面的示例:

public class HelloWorld {

    public static void main(String[] args) {

        int index = 10;

        // index 的值小于等于 15 的时候
        // 执行循环体
        while (index <= 15 ) {
            System.out.println(index);
            index++;
        }
    }
}

由上面可以知道,while 的循环相对简单:

  1. index初始化为10,判断条件是否成立,显然 10 <= 15 , 成立

  2. 条件成立,执行打印操作,打印完之后,执行 index++ ,此时 index 的值为 11

  3. 继续判断while的条件是否成立, 显示此时 index11, 条件成立 ,继续执行 打印操作

    .....

此后的步骤一直重复2,3 步骤。直到index的值是 16,不满足条件,跳出while循环。

do…while 循环

对于 while 循环,当条件满足时,就执行循环体,是先判断条件是否成立,成立再执行。

但有时候我们需要即使不满足条件,也至少执行一次。

这就是 do ... while 循环

while 不同的是: do ...while 是先执行一次,再判断条件,如果条件成立 ,继续执行循环体,如果不成立,跳出循环

但是已经执行过一次了,所以 do ... while 会至少执行一次循环体

语法如下:

do {
     //代码语句
} while (布尔表达式);

执行体在前面 ,布尔表达式在后面,所以:

  1. 先执行循环体中的代码
  2. 执行完之后,再去判断 while 后面的条件是否成立
  3. 如果成立,继续执行循环体的代码,如果不成立 ,则跳出循环

在跳出循环后,可以看到不管条件怘不成立,do...while 语句至少执行了一次

看下面的示例:

public class HelloWorld {

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

//输出如下:
    10

从上面可以看到, count 值为 10 ,不满足条件 count <= 5 ,但是也打印出了 10

就是因为 do ... while 语句会至少执行一次

我们来看一个正常的例子:

public class HelloWorld {

    public static void main(String[] args) {

        int count = 10;

        do {
            System.out.println(count);
            count++;
        }while (count <= 15);
    }
}

//输出如下:
    10
    11
    12
    13
    14
    15

break关键字

break 关键字是中断循环的作用,主要用在循环语句或者switch语句中。用来跳出整个语句块

如果有循环嵌套,break 跳出最里面的循环。并且继续执行外面的循环的语句

语法:

很简单,就一个关键字 break; 就行了

示例:

public class HelloWorld {

    public static void main(String[] args) {

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

            // 当 i 为 5 时,中断循环
            if( i == 5 ){
                break;
            }

            System.out.println( i );
        }
    }
}

//输出如下:
    1
    2
    3
    4

continue 关键字

continue关键字用于循环控制结构中

它的作用是:可以跳过当次循环,继续执行下一次循环

语法:

和 break一样,也是只有一个关键字:continue;

示例:打印所有的奇数

public class HelloWorld {

    public static void main(String[] args) {

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

            //当 i 为偶数时,跳过本次循环,继续下一次循环
            if ( i % 2 == 0 ) {
                continue;
            }

            System.out.println( i );
        }
    }
}

//输出如下:
    1
    3
    5
    7
    9

从上面可以看出:

  • 当 i 为偶数时( i % 2 == 0 ),就跳出当这一次的循环,下面的语句不执行,然后继续下一次的循环

  • 当 i 为奇数时( i % 2 != 0 ) , 就继续执行下面的打印语句

小结

本小节学习了Java的循环控制结构,现总结一下:

  • Java 循环结构分为 while,do...while,for
  • while 是先判断条件,条件成立 ,执行循环,依次重复此步骤
  • do ... while 是先执行一次循环体,再判断条件,条件成立,再次执行循环体
  • for 是靠计数器来执行循环体
  • break 可以用在循环结构和 switch 结构中,用以跳出当前循环
  • continue 是用在循环结构中,跳出当前这一次的循环,继续下一次的循环
image
EchoEcho官方
无论前方如何,请不要后悔与我相遇。
1377
发布数
439
关注者
2222882
累计阅读

热门教程文档

Spring Boot
24小节
Python
76小节
QT
33小节
Rust
84小节
C++
73小节