循环结构(for循环、while循环)
1、含义:
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
2、分类:
1、for循环
2、while循环
--do...while循环
3、循环语句的组成
①初始化语句:
一条或者多条语句,这些语句完成一些初始化操作。
②判断条件语句:
这是一个boolean 表达式,这个表达式能决定是否执行循环体。
③循环体语句:
这个部分是循环体语句,也就是我们要多次做的事情。
④控制条件语句:
这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。
for循环
1、for循环:
语句格式:
for(初始化语句;判断条件语句;控制条件语句){
循环体代码;
}
2、执行流程:
A:执行初始化语句,只执行了一遍
B:执行判断条件语句,看其结果是true还是false
如果是false,循环结束。
如果是true,继续执行。
C:执行循环体语句
D:执行控制条件语句
E:回到B继续
3、例:打印10行HelloWorld
方法一:
public class ForDemo1 {
public static void main(String[] args) {
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
方法二:利用for循环
public class ForDemo1 {
public static void main(String[] args) {
for(int i=1;i<=10;i++){
System.out.println("HelloWorld");
}
}
}
解释说明:①int i=1; 初始化值的作用,因为我们要打印10句HelloWorld,从第一次开始,所以我们需要定义一个变量 int类型的变量去开始计数,表示第几次循环
②i<=10; 条件判断语句,这个语句使用控制是否进入循环的条件
③i++ 控制循环体中的条件的变化,在这里表示的是,每循环一次,i++
4、/*
使用for循环的注意事项
1、条件判断语句只能是boolean类型
2、当循环体的语句只有一条的时候,可以省略大括号,如果循环体的语句有多条的时候,这时候需要添加大括 号,如果不添加循环语句只针对第一条语句有效(建议,永远不要省略大括号)
3、如果在小括号后加分号,默认有一个空语句体,后面的代码为正常的代码块,不参与循环
4、初始化语句可以不在for循环中的小括号中体现,但是必须在使用之前定义好
5、条件判断语句可以删除,但是删除之后,就没有了控制循环结束的条件,就变成了死循环
6、控制条件语句删除之后,也变成了死循环,你可以删除,但是初始化的变量的值一定
要在循环体中发生变化。
*/
public class ForDemo2 {
public static void main(String[] args) {
int i = 1;
for (;i <= 10; ) {
System.out.println("数加");
i++;
}
}
}
while循环
1、while循环
语句格式:
(1)简化格式:
while(关系表达式){
循环体语句;
}
(2)完整格式:
初始化语句;
while(关系表达式){
循环体语句;
控制条件语句;
}
结论:for循环可以等价转换为while循环
2、执行流程
1、先执行初始化语句
2、判断关系表达式的结果,
如果是true,进入while循环,执行循环体内容
如果是false,就不进入while循环,不执行循环体内容
3、如果进入循环体内容,执行循环体代码和控制条件语句
4、知道关系表达式的结果为false,终止while循环
3、死循环介绍:
for(;;){}
while(true){}
4、例:打印10遍HelloWorld
*/
public class WhileDemo1 {
public static void main(String[] args) {
//需求:打印10遍HelloWorld
System.out.println("===============用for循环实现===============");
for(int i=1;i<=10;i++){
System.out.println("HelloWorld");
}
System.out.println("===============用while循环实现===============");
int i=1;
while (i<=10){
System.out.println("HelloWorld");
i++;
}
System.out.println("=============死循环================");
int i1 = 0;
while (true){
System.out.println("这是死循环"+i1);
i1++;
}
}
}
5、while循环与for循环的区别:
for循环结束后,在for循环中定义的初始化变量在外部无法使用,while循环结束后,由于初始化值变量是在 while循环外部定义的,所以在while循环外部可以访问到。
例:
*/
public class WhileDemo2 {
public static void main(String[] args) {
System.out.println("for循环实现");
for(int i=1;i<=10;i++){
System.out.println(i);
}
// System.out.println(i);
System.out.println("while循环实现");
int i1 = 1;
while (i1<=10){
System.out.println(i1);
i1++;
}
System.out.println(i1);
}
}
输出结果位:
for循环实现
1
2
3
4
5
6
7
8
9
10
while循环实现
1
2
3
4
5
6
7
8
9
10
11
do...while循环
1、语句格式:
(1) 基本格式
do {
循环体语句;
}while(判断条件语句);
(2) 扩展格式(开发中使用扩展格式)
初始化语句;
do {
循环体语句;
控制条件语句;
} while(判断条件语句);
2、例:统计1-10之和
public class DoWhileDemo1 {
public static void main(String[] args) {
//统计1-10之和
int sum = 0;
int i = 1;
do {
sum = sum + i;
i++;
} while (i <= 10);
System.out.println("1-10之和为:" + sum);
}
}
3、debug查看运行过程
1、先在左边将你要查看流程的代码标红
2、右击debug
3、点一次》,执行一次步骤,观察执行流程和变量值的变化
debug的好处
让我们更加清晰地明白程序是如何执行的,以及变量是如何变化的
4、 do...while和while区别
/*
(1)while循环,执行的时候,会先进行一次判断,如果是true才执行循环体
(2)do...while循环,执行的时候,会先执行一次循环体内容,然后再判断是true还是false
写程序优先考虑for循环,再考虑while循环,最后考虑do…while循环。
*/
public class DoWhileDemo3 {
public static void main(String[] args) {
int i = 0;
while (i>0){
System.out.println(i);
i--;
}
System.out.println("============do...while循环============");
do{
System.out.println(i);
i--;
}while (i>0);
}
}