• 第三章《数组与循环》第3节:while循环


    在实际开发过程中,常常需要计算机完成很多重复性的工作。例如,有一个int型的数组array,它的长度为5,如果程序员希望打印出该数组的每一个元素,可以用如下代码实现:

    1. System.out.println(array[0]);
    2. System.out.println(array[1]);
    3. System.out.println(array[2]);
    4. System.out.println(array[3]);
    5. System.out.println(array[4]);

    以上代码的重复性非常强,如果array数组的长度是100,那么就需要重复写100次输出语句。为减少这种重复性的代码编写,Java以及其他高级编程语言都引入了循环结构。循环结构可以使虚拟机反复执行某些语句。在Java语言中,共有3中类型的循环,分别是while循环、do...while循环和for循环,本小节重点介绍while循环。

    while循环的格式如下:

    while(条件)
       语句;

    在以上格式中,while关键字后面的小括号里有一个条件,专业上把这个条件称为“循环条件”。 循环条件往往是一个关系表达式,关系表达式中的变量叫做“循环变量”。在循环中要执行的语句被称为“循环语句”

    while循环的工作原理是:首先判断循环条件是否成立,如果条件成立会执行循环语句。当语句执行完毕后,会重新判断条件是否仍然成立,如果条件仍然成立则再次执行语句,如此反复,直到条件不成立才退出循环。同if语句一样,while循环在条件成立的情况下也只能执行一条语句,如果希望在条件成立的情况下执行多条语句,也可以添加一对大括号把需要反复执行的语句全部用大括号括起来。

    既然while循环在条件成立的情况下会一直执行语句,就需要设法终止循环,否则虚拟机会无限次的执行循环语句,以至于程序运行无法停止,专业上把这种无法停止的循环称为“死循环”。大多数情况下,while循环在每次执行语句时都要修改循环变量的值,随着循环变量的不断被修改,总会使得循环条件不再成立,这样就能达到退出循环的目的。

    本小节一开始提到了打印全部数组元素的操作。如果希望使用while循环来完成这个操作,其基本思路如下:

    • 声明一个int型循环变量i,用它来作为数组下标
    • 设置i的初始值为0
    • 设定i
    • 在循环语句中打印数组元素并执行i++

    以下是使用while循环打印array数组的完整代码:

    【例03_03 用while循环打印数组元素】

    Exam03_03.java

    1. public class Exam03_03 {
    2. public static void main(String[] args) {
    3. int[] array = { 1, 3, 5, 7, 9 };
    4. int i = 0; // 声明并初始化循环变量
    5. while (i < array.length) {
    6. System.out.println(array[i]); // 打印下标为i的元素
    7. i++; // 修改循环变量,否则循环条件一直成立以至于无法退出循环
    8. }
    9. }
    10. }

    在【例03_03】中,每次执行while循环语句时,都会对循环变量i进行自增操作,这样i的值会逐渐变大,当i的值达到与数组长度相等时,循环条件就不再成立,循环结束。初学Java者有时会忘记修改循环变量,这样循环条件一直都成立,以至于无法结束循环

    使用循环还可以完成很多其他重复性操作。例如,通过循环可以完成数字的累加或阶乘的计算,下面的【例03_04】演示了如何使用while循环完成从1累加到100的计算过程。

    【例03_04 用while循环累加数字】

    Exam03_04.java

    1. public class Exam03_04 {
    2. public static void main(String[] args) {
    3. int i = 1; // 声明并初始化循环变量
    4. int sum = 0; // 累加和,初始值为0
    5. while (i <= 100) {
    6. sum = sum + i; // 循环完成累加
    7. i++; // 修改循环变量
    8. }
    9. System.out.println(sum);
    10. }
    11. }

    除阅读文章外,各位小伙伴还可以点击这里观看我在本站的视频课程学习Java!

  • 相关阅读:
    python中调试pdb库用法详解
    构建AR视频空间大数据平台(物联网及工业互联网、视频、AI场景识别)
    22年icpc西安站记录
    卡塔尔世界杯在哪里可以看直播?
    卸载各种方式安装的K8S集群
    synchronized 的实现原理以及锁升级详解
    (c/c++)——STL
    honoka的键盘
    软件测试 -- 进阶 2 软件测试分析
    分库分表知识内容
  • 原文地址:https://blog.csdn.net/shalimu/article/details/128002423