双重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运行结果

当然,在循环中不仅可以嵌套一层循环,理论上来说是可以无限嵌套的,但是如果循环嵌套的过多的话,会影响程序的性能,而且阅读起来也会非常吃力,所以在开发时应避免使用更深层的嵌套循环。

最新文章

  1. EF优缺点的理解
  2. 判断listview是上滑还是下滑的方法
  3. 第四章 jQuery中的事件
  4. C# 保存和读取TreeView展开的状态
  5. PHP 内存不足
  6. Java关键字this的用法总结
  7. C++中使用stringstream简化类型转换
  8. dp 46(再做一遍)
  9. [转] iOS (OC) 中 KVC 与 KVO 理解
  10. 我学习go的五个感悟(译)
  11. 1.Servlet介绍 和 HTTP协议简述
  12. Linux之批量挂载硬盘
  13. Codeforces 1153D Serval and Rooted Tree (简单树形DP)
  14. Self-organizing Maps及其改进算法Neural gas聚类在异常进程事件识别可行性初探
  15. SQL SERVER的锁机制
  16. non-member function cannot have cv-qualifier
  17. Nginx管理脚本
  18. UVA 818 Cutting Chains(状压 + 暴搜)题解
  19. python就业班-淘宝-目录.txt
  20. Spring事务管理实现方式之编程式事务与声明式事务详解(转)

热门文章

  1. DBUtils的使用之查询的操作
  2. Creating a Physical Standby from Primary on Version 12c (Doc ID 1570958.1)
  3. MySQL数据库:函数的应用
  4. java调用py文件传参执行
  5. [译]Vulkan教程(07)物理设备和队列家族
  6. js获取input checkbox的选中值
  7. yii2 提示
  8. NIO中Buffer的重要属性关系解析
  9. Java题库——Chapter13抽象类和接口
  10. API统一管理平台-YApi