循环结构就是在某些条件满足的情况,反复执行特定的代码的功能。
循环语句的四个组成部分
初始化部分(init_statement )
循环条件部分(test_exp)
循环体部分(body_statement)
迭代部分(alter_statement),又有人称为步进(step),其实就是变化的部分。
for循环
for循环可能是Java语句中最常用的循环了,语法结构如下:
for (1初始化部分; 2循环条件部分; 4迭代部分){
3循环体部分;
}
具体的执行过程:
1-2-3-4-2-3-4-2-3-4-.....-2
说明:
2循环条件部分为boolean类型表达式,当值为false时,退出循环
1初始化部分可以声明多个变量,但必须是同一个类型,用逗号分隔
4可以有多个变量更新,用逗号分隔
示例如下:
/**
* @ClassName ForDemo
* @Description 利用循环计算 1-100 之间的和
* @Author lujiapeng
**/
public class ForDemo {
public static void main(String[] args) {
int result = 0 ;
for( int i = 0 ; i <= 100 ; i ++ ){
result+= i ;
}
System.out.println( result );
}
}
while 循环
while循环也是比较常用的循环,语法格式如下:
1初始话部分
while( 2循环条件部分 ){
3循环体部分;
4迭代部分;
}
其实 3循环部分与4迭代部分,都是属于循环体内部的一部分。理论上是可以进行交换的,但是在实际开发中,迭代部分一般都是最后执行的部分。
执行顺序:
1-2-3-4-2-3-4-2-3-4-...-2
说明:
一定不要忘记最后的 4迭代部分,否则,循环不能结束,从而变成一个死循环。
for循环和while循环可以相互转换,具体看使用情况。
for循环和while循环可能一次循环都不执行。
示例如下:
/**
* @ClassName WhileDemo
* @Description whild循环的例子,计算1-100之间的和
* @Author lujiapeng
**/
public class WhileDemo {
public static void main(String[] args) {
int i = 0 ;
int result = 0 ;
while (i<=100){
result += i ;
i++ ;
}
System.out.println( result );
}
}
do-while 循环
do-while循环使用较少,语法格式如下:
1初始化部分;
do{
3循环体部分;
4迭代部分;
}while( 2循环条件部分 );
理论上说3循环体部分与4迭代部分可以互换,但是可能会造成少了一次循环。
执行过程:
1-3-4-2-3-4-2-3-4-....-2
说明:
do-while至少执行一次循环,而while、for循环有可能一次都不执行循环。
示例如下:
/**
* @ClassName DoWhileDemo
* @Description do-while循环的例子,计算1-100之间的和
* @Author lujiapeng
**/
public class DoWhileDemo {
public static void main(String[] args) {
int result = 0 ;
int i = 0 ;
do{
result += i ;
i++ ;
}while (i<=100);
System.out.println( result );
}
}
循环嵌套
循环嵌套,又名嵌套循环,也就是将一个循环当做另一个循环的循环体。其中for、while、do-while均可以作为外层循环或内层循环。
实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为false时,才会完全跳出循环,才可以结束外层的当次循环,开始下一次的循环。
假设外层循环次数为m次,内层为n次,则内层循环体实际上需要执行m*n次。
特殊关键字的使用( break、continue )
break 语句
break语句用于终止某个语句块的执行
{
……
break;
……
}
break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块。
示例如下:
/**
* @ClassName BreakDemo
* @Description break关键字的使用
* @Author lujiapeng
**/
public class BreakDemo {
public static void main(String[] args) {
for( int i = 0 ; i < 10 ;i++ ){
if( i== 3 ){
break;
}
// 此时仅仅输出 0、1、2
System.out.println( i );
}
}
}
continue
continue 语句只能使用在循环结构中;用于跳过其所在循环语句块的一次执行,继续下一次循环;出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环(这一点很少使用,一般二层循环就足够了)。
示例如下:
/**
* @ClassName ContinueDemo
* @Description Continue使用
* @Author lujiapeng
**/
public class ContinueDemo {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
if( i == 3 ){
continue;
}
// 此时输出0-9,结果中并没有3
System.out.println( i );
}
}
}
break 与 continue 说明
break只能用于switch语句和循环语句中。
continue 只能用于循环语句中。
二者功能类似,但continue是终止本次循环,break是终止本层循环。
break、continue之后不能有其他的语句,因为程序永远不会执行其后的语句。
标号语句必须紧接在循环的头部。标号语句不能用在非循环语句的前面。
很多语言都有goto语句,goto语句可以随意将控制转移到程序中的任意一条 语句上,然后执行它。但使程序容易出错。Java中的break和continue是不同 于goto的。