循环结构的主要特点是可以根据某些判断条件来重复执行某段程序代码的处理结构,Java语言的循环结构一共分为两种:while循环结构和 for循环结构。
1、While循环
1.1、使用 while语句可以实现循环条件的判断,当判断条件满足时则执行循环体的内容,Java中 while循环结构有两类:
while 循环 do... while 循环
while (循环判断) { do {
循环语句; 循环语句;
修改循环结束条件; 修改循环结束条件;
} } while (循环判断);
1.2、while与 do…while的区别:
while循环需要先判断循环条件后才可以执行程序代码,do…while循环可以先执行一次循环,再进行后续循环的判断。
若循环条件不满足时,while循环一次都不执行,do…while循环至少执行一次。
注意: 避免死循环。
例59:使用 while循环结构实现 1~100数字累加计算
public class JavaDemo054 {
public static void main(String[] args) {
int sum = 0;// 保存最终的计算总和
int num = 1;// 进行循环控制
while (num <= 100) {// 循环执行条件判断
sum += num;// 数字累加
num++;// 修改循环条件
}
System.out.println(sum);// 输出累加结果
}
}
例60:使用 do…while实现 1~100数字累加
public class JavaDemo055 {
public static void main(String[] args) {
int sum = 0;// 保存最终的计算总和
int num = 1;// 循环控制
do {
sum += num;// 累加
num++;// 修改循环条件
} while (num <= 100);// 判断循环条件
System.out.println(sum);// 输出累加结果
}
}
2、for循环
在明确指定了循环次数的情况下,可以利用 for循环结构来实现循环控制。
for (循环初始化条件; 循环判断; 循环条件变更) {
循环语句;
}
for循环在定义的时候是将循环初始化条件、循环判断、循环条件都放在了一行语句中,而在执行的时候循环初始化条件只会执行一次,而后循环判断条件在每次执行循环体前都会进行判断,并且每当循环体执行完毕后都会自动执行循环条件变更。
例61:使用 for循环实现 1~100累加
public class JavaDemo056 {
public static void main(String[] args) {
int sum = 0;
// 设置循环初始化条件 num,同时此变量作为累加操作使用,每次执行循环体前都要判断 (num <= 100)
// 循环体执行完毕后会自动执行 "num++"改变循环条件,并且重新判断循环条件,满足时继续执行语句
for (int num = 1; num <= 100; num++) {
sum += num;// 循环体中实现累加操作
}
System.out.println(sum);// 输出累加结果
}
}
提示: 在编写 for循环的时候尽量不要将初始化和循环判断条件分开使用。
例62:另一种 for循环写法
public class JavaDemo057 {
public static void main(String[] args) {
int sum = 0;// 保存最终的计算总和
int num = 1;// 循环初始化条件
for (; num <= 100;) {// for循环
sum += num;// 循环体中实现累加操作
num++;// 修改循环结束条件
}
System.out.println(sum);// 输出累加结果
}
}
总结:
while循环:在不确定循环次数,但确定循环结束条件的情况下使用。
for循环:在确定循环次数的情况下使用。
3、循环控制语句
在循环结构中只要循环条件满足,循环体的代码就会一直执行,程序之中提供有两个循环停止的控制语句:continue (退出本次循环)、break (退出整个循环)。
提示: 循环控制语句在使用时往往要结合分支语句进行判断。
例63:使用 continue控制循环
public class JavaDemo058 {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
if(i == 3) {
continue;
}
System.out.print(i + "、");
}
}
}
例64:使用 break控制循环
public class JavaDemo059 {
public static void main(String[] args) {
for (int x = 1; x < 10; x++) {
if (x == 3) {
break;
}
System.out.print(x + "、");
}
}
}
4、循环嵌套
循环结构可以在内部嵌入若干个子的循环结构,可以实现更加复杂的循环控制结构,同样会使程序的复杂度提升。
例65:打印乘法口诀表
public class JavaDemo060 {
public static void main(String[] args) {
for(int x = 1; x <= 9; x++) {
for(int y = 1; y <= x; y++) {
System.out.print(y + "*" + x + "=" + (x * y) + "\t");
}
System.out.println();
}
}
}
例66:打印三角形
public class JavaDemo061 {
public static void main(String[] args) {
int line = 5;// 总体行数
for (int x = 0; x < line; x++) {// 外层循环控制三角形行数
for (int y = 0; y < line - x; y++) {// 每行的空格数量逐步减少
System.out.print(" ");// 输出空格
}
for (int y = 0; y <= x; y++) {// 每行输出的 "*"逐行增多
System.out.print("* ");// 输出空格
}
System.out.println();// 换行
}
}
}
例67:使用 continue进行跳出处理
public class JavaDemo062 {
public static void main(String[] args) {
point: for(int x = 0; x < 3; x++) {// 外层 for循环,定义代码标记
for(int y = 0 ; y < 3; y++) {// 内层 for循环
if(x==y) {
continue point;// 循环跳转到指定外层循环
}
System.out.print(x + "、");
}
System.out.println();
}
}
}
027至029总结:
1、if语句可依据判断的结果来决定程序的流程。
2、选择结构包含 if、if… else及 switch语句,语句中加上了选择的结构之后,根据选择的不同,程序的运行会有不同的方向和结果。
3、需要重复执行某项功能时,最好使用循环结构,可以选择使用 Java所提供的 for、while及 do… while循环来完成。
4、break语句可以强制程序逃离循环。当程序运行到 break语句时,即会离开循环,执行循环外的语句,如果 break语句出现在嵌套循环中的内层循环,则 break语句只会选择逃离当前层循环。
5、continue语句可以强制程序跳到循环的起始位置,当程序运行到 continue语句时,即会停止运行剩余的循环主体,而回到循环的开始处继续运行。