在java里面的循环语句大致分为四种:for循环、while循环、do...while循环和增强for循环。下面进行一一讲解。
for循环,for循环是java代码中最为常见的循环形式,其语法格式为:
for(表达式1;表达式2;表达式3){
循环的代码块;
}
表达式1:一般作为变量的初始化,定义变量,并赋初始化值。
表达式2:作为判断语句(条件语句)
表达式3:在循环的代码块运行结束之后,再运行的代码,一般作为改变变量的值。
for循环中的执行顺序:表达式1-->表达式2--> 循环的代码块-->表达式3
for循环的流程图:
事例代码1:
1 public void method_1(){ 2 //使用for循环,在控制台输出1到100的数 3 for(int i = 1;i <= 100;i++){ 4 //在控制台输出i,i即使从1一直到100 5 System.out.println(i); 6 } 7 }
上面的代码,一开始i的值为1,每次执行完,i自增1,根据判断条件,直到i大于100,才停止,没有停止之前,i一直增加并输出。
while循环:
定义变量并初始化值;
while(表达式1){
循环的代码块;
表达式2(改变变量的值)
}
注意:1)在使用while循环之前,一定要定义变量并初始化值,否则, 会报错。这个变量是在while的条件判断。
2)在循环体里面,也就是while循环的大括号里面,在循环的代码块后面一定要记得写改变变量的值,否则会出现死循环。
while循环的流程图:
事例代码2:
1 public void method_2(){ 2 //定义一个变量,并初始化值; 3 int i = 1; 4 //使用while循环代码。输出1到100 5 while(i <= 100){ 6 System.out.println(i); 7 i++; 8 } 9 }
以上是while循环的代码,注意的是第3行代码和第7行代码,虽然不属于while循环的语法结构,但是如果少了,会报错或者死循环。
do..while循环:
do...while循环也是一个循环,和while相似,但又有区别,先看do...while循环的语法:
定义变量并初始化值;
do{
循环的代码块;
改变变量的值;
}while(表达式)
注意:1)在写do...while循环之前,一定要定义变量并初始化值,这个变量用于while里面的判断。
2)在do的大括号里面,除了循环的代码块,需要在后面加上改变变量的值。
do...while循环的流程图:
事例代码3:
1 public void method_3(){ 2 //定义一个变量,并初始化值; 3 int i = 1; 4 //使用do...while循环,输出1到100 5 do{ 6 System.out.println(i); 7 i++; 8 }while(i <= 100) 9 }
上面的代码注意的是第3行和第7行,如果少了会出现报错或者死循环。
对于while循环和do...while循环,语法结构都非常的相似,下面说一下while循环和do...while循环的区别:
从语法和流程图可以看出,while是先判断,只有当表达式结果正确的情况下,才会执行循环的内容,而do...while循环是先执行循环的内容,再进行判断,这这样,当一开始条件就不满足的情况下,do...while至少会执行一次循环的代码,而while循环则一次都不运行。
增强for循环:这种循环适用于对象才能使用,比如数组,集合框架等。
语法:for(数据类型 从对象中取出的元素 :对象名){
}
事例代码4:
1 public void method_4(){ 2 //定义一个数组,数据类型为int 3 int[] num = {1,2,3,4,5,6,7,8}; 4 //使用增强for循环,遍历出num数组中的所有元素。 5 for(int i : num){ 6 //for循环中的i值,表示的是数组中的元素,而不是下标,这个一定要注意 7 System.out.println(i); 8 } 9 }
跳出循环的两种方式:
break:跳出整个循环,当在循环的代码中,如果读取到了代码break;则结束整个循环。
continue:跳出本次循环,继续下一次循环,在循环的代码中,如果读取到了continue代码,则跳出本次循环,也就是循环体中的continue代码以下的所有代码将不再执行,而是从头开始下一次的循环。
这两者的最大区别在于:break是不再执行循环代码,跳出的是整个循环,而continue依然在循环体系中执行,只是本次的代码 不再执行而已。
事例代码5:循环输出从1到10,当遇到了5之后,则结束循环,使用break;
1 public void method_5(){ 2 //使用for循环,从1到10输出 3 for(int i = 1;i <= 10;i++){ 4 //如果遇到了5,则结束循环: 5 if(i % 5 == 0){ 6 break; 7 } 8 System.out.println(i); 9 } 10 }
以上代码:因为遇到5,则执行break;,结束整个循环,则最终控制台输出的为:1,2,3,4
事例代码6:循环输出从1到10,当遇到5之后,则跳出本次循环,使用continue
1 public void method_6(){ 2 //使用for循环,从1到10输出 3 for(int i = 1;i <= 10;i++){ 4 //判断,如果i等于5的时候,则执行continue代码 5 if(i % 5 == 0){ 6 continue; 7 } 8 System.out.println(i); 9 } 10 }
以上代码:因为遇到5,则执行continue;跳出当次循环,继续下一次的循环,则最终控制台输出的为:1,2,3,4,6,7,8,9,10
来源:https://www.cnblogs.com/private-lxl/p/10213495.html