在我们进行开发的时候,经常需要重复执行某一段代码。重复执行很多次,最后根据条件的判断,是不是继续执行。我们在生活中这种重复执行的动作,在java中,就有一种比较简便的方式进行操作,那就是循环结构。
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
1.for循环
先简单介绍一下for循环的基本结构:
for(初始化语句;条件判断语句;条件控制语句)
{
循环体语句;
}
在这就会引入四个关于循环的概念:初始化语句、条件判断语句、条件控制语句、循环体语句,下面就具体介绍一下这四个概念:
初始化语句:用于表示循环开启时的起始状态,一般是一个定义赋值的表达式(可以省略)
条件判断语句:循环反复执行的条件,是一个表达式,结果一定是boolean值(可以省略,默认是true)
条件控制语句:用于表示循环反复执行的内容,简单说就是循环反复执行的事情(可以省略)
循环体语句:循环执行中每次变化的内容,简单说就是控制循环是否能执行下去
执行流程:
①执行初始化语句
②执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
③执行循环体语句
④执行条件控制语句
⑤回到②继续
示例:打印1-100之间的能够被3整除的所有数字。
分析:
1、题目要求1-100之间的数据,首先就要思考怎么把1-100之间的每个数字先提供出来。这就是从1-100把每一个数都打印出来,这就是一个重复性的动作,重复的动作可以使用循环提供。
2、循环就是帮我们实现重复的操作,从1开始到100结束,循环的过程中,就可以提供出1-100之间的每个数字,可是题目并不需要1-100之间的所有数字,而只需要能够被3 整除的数字,
3、这时就需要对循环提供的数字进行筛选,需要对提供的每个数字进行判断。对数字进行判断, 符合条件的就打印,不符合的数字就不需要。
4、题目需要的是能被3整除的数,那就是用生成的每个数除以3,余数为0的数就进行打印。进行判断的格式如下:
if( x % 3 == 0)
{
}
总体步骤:
1、使用for循环提供1-100之间的每个数字
2、在for中加入if判断进行数据的筛选
3、判断成立打印数据
具体的代码如下:
class ForDemo {
public static void main(String[] args) {
//使用for循环取得1-100之间的数字
for(int x=1;x<=100;x++) {
//筛选数字%3==0的数字
if(x%3==0){
//x能被3整除
System.out.println("x="+x);
}
}
System.out.println("Hello World!");
}
}
2.while循环结构
while循环完整格式:
初始化语句;
while (条件判断语句) {
循环体语句;
条件控制语句;
}
while循环执行流程:
①执行初始化语句
②执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
③执行循环体语句
④执行条件控制语句
⑤回到②继续
首先执行初始化语句,当语句执行到while的时候,判断循环条件是否成立,两种情况,第一种情况为true,就会去执行while后面大括号里面的内容,等循环体执行完之后,执行条件控制语句,然后再回去循环条件去判断,直到循环条件为false的时候,才结束本地循环,继续执行其他代码,如果循环条件一直为true,则一直执行循环体。如果刚到while循环的条件判断语句是就是false,则直接跳出循环不会执行循环里的任何语句。
示例代码:
class WhileDemo {
public static void main(String[] args) {
//定义变量
int a=1;
while(a<=10){
System.out.println("a="+a);
a++;//a=a+1;a+=1
}
}
}
3.do-while循环
完整格式:
初始化语句;
do {
循环体语句;
条件控制语句;
}while(条件判断语句);
执行流程:
① 执行初始化语句
② 执行循环体语句
③ 执行条件控制语句
④ 执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
⑤ 回到②继续执行
当程序执行遇到do关键字的时候,程序就知道这是一个do-while循环,首先去执行do大括号里面的内容,当大括号里面的内容执行完成之后,再去执行while括号里面的循环判断,如果是true,继续执行do大括号里面的代码,直到while里面的条件为false,才会结束循环。
class DoWhileDemo {
public static void main(String[] args) {
int x=1;
do{
System.out.println("x="+x);
x++;
}while(x<=10);
}
}
4.三种循环的区别:
for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
do...while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)
for循环和while的区别:
条件控制语句中的自增变量,因为在for循环的语法结构中,在for循环结束后,就不能再次被访问到了
条件控制语句中的自增变量,在while循环中来说不归属其语法结构中,是定义在while循环外,在while循环结束后,该变量还可以继续使用
do-whlie和while的区别,如果你写的程序不管符合符合循环条件,都要先执行一次,那就选择do-while.
三种循环常用的情况:
for:已知循环的次数。(平时使用的最多)
whlie:未知循环次数。
do-while:不管是否满足条件,都要循环体执行一次(很少使用)。 |
|