之前的文章中给大家介绍了选择结构来控制程序流转,这篇文章内容着重介绍一下另外一种程序流控制,循环结构。
有的时候我们需要在程序中重复的去做某一件事情,比如重复对某个变量进行相同的操作。这个时候我们就可以采用循环结构来帮我们处理。
在 Java 中常用的循环结构主要三种:
-
for
循环 -
while
循环 -
do while
循环
1. for 循环
for 循环是经常用到的一种循环结构,它的结构是这样的
for (循环变量初始值; 判断循环是否结束的表达式; 更新循环控制变量) {
循环内容
}
for
循环处理一个数学计算题:
从 1 加到 100 的值是多少?
int num = 0;
for (int i = 0; i <= 100; i++) {
num += i;
}
System.out.println("num = " + num);
- 执行初始化步骤,
int i = 0
; - 判断循环是否结束,
i < = 100
如果为true,循环体num += 1
被执行。如果为false,循环终止 - 执行一次循环后,更新循环控制变量
i++
- 再次判断循环是否结束,循环执行上面的过程
注意不要死循环:
for (;;;) {
System.out.println("这是一个死循环,会一直执行下去");
}
for
循环来遍历输出数组的值:
输出颜色数组 {"red", "yellow", "blue", "green","orange"}
的每个颜色
String[] colors = {"red", "yellow", "blue", "green","orange"};
for (int i = 0; i < colors.length; i++) {
System.out.println(colors[i]);
}
增强的 for
循环:
String[] colors = {"red", "yellow", "blue", "green","orange"};
for (String color : colors) {
System.out.println(color);
}
2. while 循环
for
循环我们可以很轻易的次数,循环次数达到会结束循环。while
循环则会一种不断地运行,直到指定的条件不满足位置。
while
循环的结构:
while (布尔判断表达式) {
循环内容
}
while
循环处理数学问题:
从 1 加到 100 的值是多少?
int i = 1;
int sum = 0;
while (i <= 100) {
sum += i;
i++;
}
System.out.println("sum = " + sum);
while
循环将布尔判断表达式:i <= 100
的值控制循环是否结束,i <= 100
为 false
终止循环。
死循环是这样子的:
while (true) {
System.out.println("这是死循环,会一直执行");
}
扩展 while
循环应用
需求:持续从键盘获取输入内容,并打印出来
import java.util.Scanner;
public class WhileDemo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
String cmd = scanner.next();
System.out.println(cmd);
if ("exit".equals(cmd)) {
break;
}
}
scanner.close();
}
}
break 可以跳出整个循环
3. do while 循环
对于while
语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。 do while
循环和while
循环相似,不同的是,do while
循环至少会执行一次。
do while 循环的结构:
do {
循环的内容
} while (布尔表达式)
再来解决一下这个数据问题:从 1 加到 100 的值是多少?
int i = 0;
int sum = 0;
do {
sum += i;
i++;
} while (i <= 100);
System.out.println("sum = " + sum);
4. break 的作用
我们已经知道break
可以跳出 switch
结构,在循环结构中,它可以跳出整个循环。
持续从键盘获取输入内容,并打印出来的实例中已经知道 break 可以跳出 while
循环,对于 for
循环,它也有同样的作用。
String[] colors = {"red", "yellow", "blue", "green","orange"};
for (String color : colors) {
System.out.println(color);
if ("blue".equals(color)) {
break;
}
}
5. continue 的作用
continue
用于循环结构中,可以让程序立刻跳到下一次循环。
输出 1 到 100 之内的奇数:
for (int i = 0; i <= 100; i++) {
if (i % 2 == 0) {
continue;
}
System.out.println(i);
}
6. return 的作用
-
return
后面跟一个值或者变量,指定一个方法的返回值 - 单独的
return;
语句,后面不跟任何值或者变量,表示退出当前方法
sum
函数返回计算结果给调用该方法者
public static void main(String[] args) {
int n = sum(100, 200);
System.out.println(n);
}
public static int sum(int n1, int n2) {
int sum = n1 + n2;
return sum;
}
输出 0 到 49 的每个值:
for (int i = 0; i <= 100; i++) {
if (i == 50) {
return;
}
System.out.println(i);
}