双重for循环
如果把一个循环放在另一个循环体中,那么就可以形成嵌套循环,也就是双重for循环,当然嵌套循环也可以是for循环嵌套while循环,也可以是while循环嵌套while循环……,即各种类型的循环都可以作为外层循环,也可以作为内层循环。
当程序遇到嵌套循环时,如果外层循环的循环条件允许,则开始执行外层循环的循环体,而内层循环将被外层循环的循环体来执行--只是内层循环需要反复执行自己的循环体而已。当内层循环执行结束,且外层循环的循环体执行结束时,则再次计算外层循环的循环条件,决定是否再次开始执行外层循环的循环体。
根据上面分析,假设外层循环的循环次数为n次,内层循环的循环次数为m次,那么内层循环的循环体实际上需要执行n x m次。嵌套循环的执行流程如图4.14所示:
从上图来看,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为false时,才会完全跳出内层循环,才可以结束外层循环的当次循环,开始下一次循环。下面是一个经典的使用双重for循环在控制台打印三角形的示例代码:
public class ForDemo3{
public static void main(String[] args){
for(int i = 0; i <= 5; i++){
for(int j = 0; j < i; j++){
System.out.println("*");
}
System.out.println(" ");
}
}
}
图14 双重for循环
编译并运行这个程序,控制台将显示如图15所示的信息。
图15 ForDemo3运行结果
当然,在循环中不仅可以嵌套一层循环,理论上来说是可以无限嵌套的,但是如果循环嵌套的过多的话,会影响程序的性能,而且阅读起来也会非常吃力,所以在开发时应避免使用更深层的嵌套循环。