循环就是反复执行某一段代码。
循环的一般由以下几部分组成:
1.初始化语句:定义一些参数
2.循环条件:这是个布尔表达式,true就为真,false就跳出循环
3.循环体:也就是需要反复执行的代码
4.迭代条件:对于循环的中一些需要改变的参数的改变
Java循环一共分为四种:
1.for循环 2.while循环 3.do....while循环 4.嵌套循环
for(1.初始化语句;2.循环条件语句;4.迭代条件语句){
//3.循环体部分(第二步的判断为真)
}
for循环执行过程:
1.先执行初始化语句(这个语句只在一开始执行一次,以后就不执行了)
2.执行循环条件,看看是否满足循环的条件,true就进入3,false就结束循环
3.第二步满足以后,就执行第三步,执行循环体的代码
4.第三步执行结束以后执行第四步,对初始化语句进行调整,完事后执行第二步
,从此以后整个循环体只执行 2.3.4, 直到跳出循环
//需求:在控制台输出1到30
public class Demo {
public static void main(String[] args) {
//需求,输出1到30之间的数字
for(int n = 1; n <= 30; n++){
System.out.println(n);
}
}
}
注意事项:
1.小括号里的三个参数用”; ” 隔开
2.4个步骤都在for循环里面执行
3.缺少第二步循环条件,是一个死循环
4. 当执行的循环体只有一行代码时,可以不写 {}
for循环还有一个增强for循环
//1.初始化语句
while(2.循环条件){
//3.循环体
//4.迭代条件
}
执行过程:
1.在外面执行初始化的参数,这个只在一开始执行一次,以后都不执行;
2.执行循环条件,true就执行下去,false结束循环
3. 条件 符合,执行 第三步 循环体,再执行 第四步 迭代条件,之后执行第二、三、四步,重复执行,直至不满足条件跳出循环
//需求:控制台输出1到30
public class Demo1 {
public static void main(String[] args) {
//需求,输出1到30之间的数字
int i = 1;
while(i <= 30){
System.out.println(i);
i++;
}
}
}
注意事项:
1.初始化的参数在外面
2.循环体和迭代条件都在大括号内
while循环与for循环的区别:
相同点:必须在第二步的循环条件成立后,才执行循环体以及接下来的代码,如果循 环条件 不成立就直接跳出循环
不同点:for循环结束后,初始化的参数会被销毁,而while循环的初始化参数仍然存 在,依 旧可以使用
使用推荐:当循环次数可以确定的时候使用 for 循环,当循环的次数不确定的时候使用 while 循环
//1.初始化参数
do{
//2.循环体
//3.迭代条件
}while(4.循环条件);
执行过程:
1.初始化相应的参数,这一步只在循环开始执行一次,之后都不会使用到
2.执行循环体
3.执行迭代条件
4. 执行循环条件,判断初始化参数是否满足要求, true 继续执行, false 跳出
//需求:控制台输出1到30
public class Demo {
public static void main(String[] args) {
//需求,输出1到30之间的数字
int i = 1;
do{
System.out.println(i);
++i;
}while(i<=30);
}
}
注意事项:
1.整个dowhile循环括号后要加分号!!!!!!!!!!!!!!!
2.dowhile循环,不管什么情况下,都要先把{}中的循环体和迭代条件执行一次,然后才判断循环条件
3.while 和 dowhile 可以互换
for、while、dowhile三个循环区别
1.do..while循环,先执行一次再判断条件,所以最少执行一次,while和for循环都是先判断再执行
2.while和dowhile的初始化参数都在循环外面定义,for循环初始化参数在循环内部定义,因此当循环结束以后for循环的初始化参数被销毁了,while和dowhile的初始化参数没有被销毁
3.for循环的迭代条件在括号()里,while和dowhile的迭代条件都在大括号{}里
4.dowhile 循环的括号后面一定要带分号结束!!!记不住的把这个循环抄 100 遍
while和for两个无限循环的表达式
while(true){}
for (;;){}//for 中三个表达式 都省略 了,中间的条件默认 true
嵌套循环:
就是在循环中再有一个循环
以99乘法表为例:
每一行,都是从1开始乘,一直乘到所在行数。
第一行是1*1,一个乘法算式
第二行是1*1~1*2,两个乘法算式
第三行是1*1~1*3,三个乘法算式
有多少行,就是从 1 乘到那个行数,就有多少个乘法算式
public class Demo {
public static void main(String[] args) {
//第一个for确认是99乘法表,需要9行数字,使用参数i
for(int i = 1; i <= 9; i++){
//第二个for循环:j为每一列第一个乘数,都是从1开始,i为行数,为每一列的第 //二个乘数
for(int j = 1 ; j <= i; j++){
System.out.print(j+" * "+i+" = "+(j*i)+"\t");
}
System.out.println();
}
}
}
在循环中在特定的时候需要跳出循环或者方法的时候,使用跳转控制语句来改变程序执行流程
分别有三个:
break
continue
return
break使用场合:
在某些时候,因为某种条件的出现,强行终止结束循环,而不是等到循环条件为false时,此时可以使用break来实现。
作用: break 用于完全结束一个循环,跳出循环体,不管是哪一种循环,一旦遇到 break 就立刻 跳出当前的循环 ,或者是跳出 switch
public class Demo {
public static void main(String[] args) {
//一个简单的for循环
for(int i = 0; i< 10; i++){
System.out.println("现在输出的i的值是="+i);
if(i == 3){
System.out.println("马上就要执行break语句结束循环了");
break;
}
}
}
}
continue使用场合:
在某些时候,因为某种条件的出现,结束这一次循环,但是接下的循环还是要继续执行下去的,这时使用到break。
作用:跳出本次循环,继续下一次的循环。
public class Demo {
public static void main(String[] args) {
for(int i = 0; i< 3; i++){
System.out.println("i的值为="+i);
if(i == 1){
continue;
}
System.out.println("continue后面的语句");
}
}
}
return使用场合:
在某些时候,因为某种条件的出现,需要跳出整个循环或者方法,就需要使用return
作用:返回上一层(结束当前方法)
public class Demo {
public static void main(String[] args) {
//一个简单的循环
for(int i = 0; i< 5; i++){
System.out.println("i的值为:"+i);
if(i == 3){
return;
}
System.out.println("return后面的语句");
}
}
}