Java流程控制与数组(三)
循环结构
(1)while语句
语法格式如下所示:
while(循环条件)
{
循环体;
}
使用while循环时,一定要保证循环条件有变成false的时候,否则这个循环将变成一个死循环,永远无法结束该循环。注意如果while循环的循环条件后紧跟一个分号,这个循环的循环体为空语句,会造成该循环变成一个死循环。
(2)do while循环语句
语法格式如下所示:
do
{
循环体;
}while(循环条件);
while循环是先判断循环条件,如果条件为真则执行循环体;do while循环是先执行循环体,然后判断循环条件,如果循环条件为真则执行下一次循环,否则中止循环。注意do while循环的循环条件后必须有一个分号。
(3)for 循环
语法格式如下所示:
for(初始化语句; 循环条件;循环迭代语句)
{
循环体;
}
for循环语句的执行顺序:先执行循环的初始化语句(初始化语句只有在循环开始前执行一次),计算循环条件的值,如果返回true,则执行循环体,循环体执行结束后执行循环迭代语句。
循环条件总比循环体多执行一次,for循环的循环迭代语句并没有和循环体放在一起,在执行循环体时遇到continue语句结束本次循环,循环迭代语句也一样会得到执行。
(4)嵌套循环
public class NestedCycle
{
public static void main(String[] args)
{
for(int i=0; i<4; i++)
{
System.out.println("i的值: " + i);
if(i == 2)
{
continue;
}
System.out.println("continue 后输出的语句");
}
}
}
控制循环结构的语句
(1)使用break结束循环
break语句不仅可以结束其所在的循环,还可以直接结束其外层循环,此时需要在break后紧跟一个标签,这个标签用于标识一个外层循环。
public class NestedCycle
{
public static void main(String[] args)
{
out:
for(int i=0; i<4; i++)
{
for(int j=0; j<3; j++)
{
System.out.println(" j的值: " + j + " i的值: " + i);
if(j == 1)
{
break out;
}
}
}
}
}
运行结果为
j的值: 0 i的值: 0
j的值: 1 i的值: 0
(2)使用continue忽略本次循环剩下语句
public class NestedCycle
{
public static void main(String[] args)
{
out:
for(int i=0; i<4; i++)
{
for(int j=0; j<3; j++)
{
System.out.println(" j的值: " + j + " i的值: " + i);
if(j == 1)
{
continue out;
}
}
}
}
}
运行结果为
j的值: 0 i的值: 0
j的值: 1 i的值: 0
j的值: 0 i的值: 1
j的值: 1 i的值: 1
j的值: 0 i的值: 2
j的值: 1 i的值: 2
j的值: 0 i的值: 3
j的值: 1 i的值: 3
continue只是忽略本次循环剩下的语句,其后紧跟一个标签,用于直接跳过标签所标识循环的当次循环的剩下语句,重新开始下一次循环。
(3)使用return结束方法
public class NestedCycle
{
public static void main(String[] args)
{
for(int i=0; i<4; i++)
{
for(int j=0; j<3; j++)
{
System.out.println(" j的值: " + j + " i的值: " + i);
if(j == 1)
{
return;
}
System.out.println("return 后");
}
}
}
}
运行结果为
j的值: 0 i的值: 0
return 后
j的值: 1 i的值: 0
一旦在循环体内遇到return 语句,就会结束该方法,不管return处于多少层循环之内。