在java里面的循环语句大体分为四种:for循环、while循环、do...while循环和加强for循环。下面进行一一讲解。java
for循环,for循环是java代码中最为常见的循环形式,其语法格式为:数组
for(表达式1;表达式2;表达式3){框架
循环的代码块;spa
}code
表达式1:通常做为变量的初始化,定义变量,并赋初始化值。对象
表达式2:做为判断语句(条件语句)blog
表达式3:在循环的代码块运行结束以后,再运行的代码,通常做为改变变量的值。for循环
for循环中的执行顺序:表达式1-->表达式2--> 循环的代码块-->表达式3class
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