0
点赞
收藏
分享

微信扫一扫

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


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

System.out.println(array[0]);
System.out.println(array[1]);
System.out.println(array[2]);
System.out.println(array[3]);
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<array.length为循环条件
  • 在循环语句中打印数组元素并执行i++

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

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

Exam03_03.java

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

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

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

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

Exam03_04.java

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


举报

相关推荐

0 条评论