Java 循环语句
循环结构能让程序员以较少精力完成大量重复工作,使计算机根据条件做循环计算,条件成立时继续循环,不成立则结束循环。传统依次打印数字的代码存在不灵活、难维护、伸缩性差等弊端,而使用循环结构可解决这些问题。
1. while 循环
1.1 语法
while (条件) {
// 循环体,条件成立时执行
...
}
// 循环完成后执行
每次循环开始前判断条件是否成立,若为 true
则执行循环体内部语句;若为 false
,则跳出循环,执行后续代码。
1.2 实例
- 打印 1 到 5
public class WhileLoop1 {
public static void main(String args[]) {
int i = 1;
while (i <= 5) {
System.out.println(i); // 打印i
i++; // i自增1
}
}
}
注意循环体中需改变循环条件变量的值,否则会陷入死循环。
- 计算 1 到 100 的累加和
public class WhileLoop2 {
public static void main(String[] args) {
int sum = 0; // 累加和
int i = 1;
while (i <= 100) {
sum = sum + i; // 使sum和i相加,并将值再次赋值给sum
i++; // i自增1
}
System.out.println("1到100的累加和为:" + sum);
}
}
2. do while 循环
2.1 语法
do {
// 循环体
} while (条件);
先执行循环体,再判断条件,条件成立则继续执行循环,不成立则终止循环。无论条件是否成立,do while
循环至少执行一次,而 while
循环可能一次都不执行。
2.2 实例
public class DoWhileLoop {
public static void main(String[] args) {
int sum = 0; // 累加和
int i = 1;
do {
sum = sum + i; // 使sum和i相加,并将值再次赋值给sum
i++; // i自增1
} while (i <= 100);
System.out.println("1到100的累加和为:" + sum);
}
}
3. for 循环
3.1 语法
for (变量声明; 条件; 迭代语句) {
// 循环体
}
for
循环是特殊的 while
循环,使用计数器实现循环。括号中有三个语句:第一个是变量声明语句,可声明一个或多个整型变量;第二个是条件,每次循环开始前判断;第三个是迭代语句,通常用于递增或递减变量。
3.2 实例
- 连续打印 5 行“CSDN真棒”
public class ForLoop1 {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
System.out.println("CSDN真棒");
}
}
}
- 计算 1 到 100 的累加和
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);
}
}
- 一次声明多个整型变量
public class ForLoop2 {
public static void main(String[] args) {
for (int i = 1, j = 10; i <= 10; i++, j--) {
System.out.print(i + "\t");
System.out.print(j + "\t");
}
}
}
- 缺省变量声明语句、循环条件和迭代语句(不建议)
// 缺省变量声明语句
for (int i = 0; ; i++) {
// 语句
}
// 缺省循环条件语句和迭代语句
for (int i = 0; ; ) {
// 语句
}
// 缺省所有语句
for (;;) {
// 语句
}
4. for each 循环
学习 for each
循环需要数组和集合的前置知识,将在 Java 数组部分学习。
5. break 和 continue 关键字
5.1 break
用于跳出当前循环,通常配合 if
语句使用。在多层循环中,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);
}
}
}
public class BreakKeywords2 {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
// 打印i的值
System.out.println(i);
for (int j = 1; j <= 5; j++) {
if (j == 3) { // 条件语句
System.out.println("当j等于3时,终止循环!");
break;
}
// 打印j的值
System.out.println(j);
}
}
}
}
5.2 continue
用于跳过当次循环,继续执行下一次循环。在多层嵌套的循环中,continue
语句只能跳过它所在位置的循环。
public class ContinueKeywords {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
if (i == 3) {
System.out.println("当i等于3时,跳过~");
continue;
}
System.out.println(i);
}
}
}
6. 小结
本节介绍了 Java 中的四种循环结构:while
循环、do while
循环、for
循环以及 for each
循环,还介绍了 break
和 continue
关键字在循环中的使用。while
循环的循环体可能一次都不执行,do while
循环的循环体至少执行一次。for
循环通过计数器实现复杂循环,for each
循环可直接遍历数组的每个元素。编写循环代码时,要确保循环条件能够被影响,避免死循环。