一.引言
循环结构可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,但反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而借书循环,否则循环将一直执行下去,形成死循环。
循环语句的组成:
- 初始化语句:一条或多条语句,这些语句完成一些初始化操作
- 判断条件语句:这是一个boolean表达式,这个表达式能决定是否执行循环体
- 循环体语句:这个部分是要多次执行的语句
- 控制条件语句:这个部分是在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。(使变量有规律的变化)
二. for循环语句
(1)格式
for(初始化语句;判断条件语句;控制条件语句){
循环体语句;
}
(2)执行流程
- 执行初始化语句
- 执行判断条件语句,看起结果是true还是false
如果是false,循环结束
如果是true,继续执行 - 执行循环体语句
- 执行控制条件语句
- 回到第二步继续执行
(3)注意事项
- 判断条件语句的结果是一个boolean类型
- 循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略(建议都不省略)
(4)流程图
三. while循环语句
(1)格式
//基本格式
while(判断条件语句){
操作语句;
}
//详细格式
初始化语句;
while(判断条件语句){
循环体语句;
控制条件语句;
}
(2)执行流程
- 执行初始化语句
- 执行判断条件语句,看起结果是true还是false
如果是false,循环结束
如果是true,继续执行 - 执行循环体语句
- 执行控制条件语句
- 回到第二步继续执行
(3)流程图
四.do…while循环语句
(1)格式
//基本格式
do{
操作语句;
}while(判断条件语句);
//详细格式
初始化语句;
do{
循环体语句;
控制条件语句;
}while(判断条件语句);
(2)执行流程
- 执行初始化语句
- 执行循环体语句
- 执行控制条件语句
- 执行判断条件语句,看起结果是true还是false
如果是false,循环结束
如果是true,返回执行第二步
(3)流程图
五.三者之间的联系与区别
(1)for和while的区别
由流程图我们就可以看出,for循环和while循环完全一致,他们可以等价转换,但其实他们之间还是有一些小的区别。
- 使用区别:控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束后还可以继续访问。
- 场景区别:for循环适合针对一个范围判断进行操作。
while循环适合判断次数不明确的操作。
其实他俩的使用区别涉及到了java中的另一个知识点——局部变量,这里就不在细说。详情请查看此处
(2)三者的区别
三种循环语句其实都可以完成一样的功能,也就是说可以等价转换,但也有小区别:
- do…while循环至少会执行一次循环体语句(先执行,再判断)
- for循环和while循环只有在条件成立时才会去执行循环体语句(先判断,再执行)
(3)注意事项
写程序的时候,我们一般优先考虑for循环,再考虑while循环,最后考虑do…while循环。
六.嵌套循环(难点)
(1)执行流程
执行流程:外层循环执行一次,内层循环执行一遍
(2)案例
1.需求:请输出一个4行5列的星星(*)图案。
class 类名{
public static void main(String[] args){
for(int y = 0;y < 4;y++){
for(int x = 0;x < 5;x++){
System.out.print("*");
}
System.out.println();
}
}
}
注:上述代码中有两种输出格式
System.out.print();
System.out.println();
这两个的区别就在于第二个可以换行输出,第一个不换行输出。
2.需求:请输出如下图形。
*
**
***
****
******
class 类名{
public static void main(String[] args){
for(int y = 0;y < 5;y++){
for(int x = 0;x <= y;x++){
System.out.print("*");
}
System.out.println();
}
}
}
注:上述代码涉及到了转义字符“\t”。他是输出一个制表符距离。详情请查看此处
3.需求:请输出九九乘法表。
class 类名{
public static void main(String[] args){
for(int y = 1;y <= 9;y++){
for(int x = 1;x <= y;x++){
System.out.print(x + "*" + y + "=" + y*x + "\t");
}
System.out.println();
}
}
}
(3)注意事项
- break和continue只能作用于直属的循环层次
七.结语
循环语句是编程中非常重要和实用的工具。通过合理地运用for循环、while循环和do-while循环,以及灵活运用嵌套循环,我们能够更加高效地编写代码,并解决各种不同的问题。所以我们要熟悉掌握循环语句。