一、嵌套循环

循环可以互相嵌套,以实现更加复杂的逻辑,其代码的复杂程度也会提高,对初学者而言这应该是个难点,下面我们通过一些例子说明嵌套循环的使用,读者要自己把这些代码上机练习,并理解程序运行的流程。

先看看一个简单例子,代码如下:

//二重循环
for(int i=0;i<3;i++){for(int j=0;j<2;j++){System.out.println("i="+i+",j="+j);}
}

上面是一个二重循环,因为在for循环里又嵌套了一个循环,当然循环可以无限嵌套,所以也就是有无限重的循环,但是一般我们写代码的时候很少超过三重循环。

在第一层循环中,循环的控制头和上面介绍的没有不同,仅仅只是该循环的循环体里又包含了一个循环,我们需要的是理解这段程序的执行流程:

外层循环i=0时,条件满足进入循环体,并执行第二层循环,

第二层循环是j=0,条件满足进入循环体,并执行里面的输出语句,输出:

i=0,j=0

然后还是第二层的循环还没有结束,继续执行,这个时候j=1,所以输出:

i=0,j=1;

第二层循环结束。

这个时候外层循环还没有结束,i自增1后,又进入循环,并再次执行第二层循环这个时候i=1,又再一次的执行了第二层的循环:

第二层循环是j=0,条件满足进入循环体,并执行里面的输出语句,输出:

i=1,j=0

然后还是第二层的循环还没有结束,继续执行,这个时候j=1,所以输出:

i=1,j=1;

第二层循环结束。

类似的,这个时候外层循环还没有结束,i自增1后,i=2又进入二层循环,所以这个程序最后的输出结果是:

i=0,j=0

i=0,j=1

i=1,j=0

i=1,j=1

i=2,j=0

i=2,j=1

下面我们再具一个稍微复杂一点的程序:输出乘法表。

1×1=2

1×2=2 2×2=4

1×3=3 2×3=6 3×3=9

...

1X9 ... ... 9X9=81

实现代码如下:

for(int i=1;i<10;i++){     for(int j=1;j<=i;j++){System.out.print(j+"X"+i+"="+(i*j)+"  ");     }System.out.println();
}

二、break

break与continue语句和都是可以控制循环的执行流程的,其中break语句可以直接强行跳出整个循环,默认情况下直接跳到下一条语句进行执行。比如我们要输出类似下面的三角形星号符。

*

* *

* * *

* * * *

* * * * *

* * * * * *

* * * * * * *

实现代码如下:

public class Test {
//三角形的高度
// 直角三角形的高度
int hight = 0;
System.out.println("请输入三角形的高度:"); // 提示信息
Scanner scnr = new Scanner(System.in); // 获取控制台输入
hight = scnr.nextInt(); // 在控制台输入中取下一个int值for (int i = 0; i < hight; i++) { // 按hight的高度一层一层打印for (int j = 0; j < hight; j++) {// 每次继续迭代,原则第一层打一个, 第二层打二个,第三层打三个…         if (j <= i) {System.out.print("*"* ");} else {// 退出循环的条件,比如在第二层打 第三个是退出break;  //后面不能写代码了,会提示错误
         }}System.out.println(); // 每层的换行符
}

读者可以上机演示上面的代码。注意在嵌套循环中break只能跳出自己的循环体,对于父循环体没有任何影响。直接写在break语句后面的代码在Eclipse中会提示错误,因为这些语句具有不可达性。

前面介绍过在java中没有goto语句,但是在循环中使用break语句可以达到类似goto语句的效果,这种用法是在break语句中添加行标号,控制会被传递给当前方法中的带有这一标号的语句,这种格式的写法如下:

break label;

三、continue语句

continue语句语句和break语句一样都是指退出循环,但是区别在于continue特指退出当前一层循环,继续下一层循环的执行。可以认为是continue是对break语句的一种补充机制,提供了终止当前一层循环继续去判断循环控制表达式进而继续执行循环体的可能。Continue跟break类似,同样提供类似goto的功能:

continue toCode;

注意退出循环的方法除了使用break语句/continue语句外,你还可以使用return,return的优先级别非常高,在任何情况下它都会直接终止当前方法的运行。参考下面的示例:

for (int i = 0; i < 3; i++) {System.out.println("开始第" + i + "次for循环");if (i == 1) {continue;//程序运行后面的代码就不会执行,但循环不会退出。
    }System.out.println("看看continue后这里执行了吗?");
}

java中多重循环和break、continue语句相关推荐

  1. Java中带标签的break,continue

    首先不带标签的break,continue 就不介绍了.大家平时用的最多的也就是这样的情况了. 首先Java中没有goto,但是可以利用带标签的break, continue来实现类似的跳转. 首先来 ...

  2. Java中带标签的break和continue

    Java中带标签的break和continue 目录 Java中带标签的break和continue 1.单独使用break 2.带标签的break 3.单独使用continue 4.带标签的cont ...

  3. goto在Java中的替代(break和continue的进阶用法)

    文章目录 前言 一.goto是什么? 二.goto与Java的关系 1.关系 2.Java中的标签 2.break和continue的进阶用法 总结 前言 goto语句是在源码级上的跳转,这使得其招致 ...

  4. js中的循环(跳过(continue)和中断执行(break))

    js中的循环(跳过(continue)和中断执行(break)) js循环中可以在循环时是可以中断后续执行和跳过的 看下面这个栗子 //计算1~100之间的和 //我们没有学习过循环之前,使用的做法, ...

  5. java中的循环结构_Java中的循环结构进阶

    循环结构进阶 学习本章用到的单词 triangle:三角形 circle:圆形 diamond:钻石 password:密码 row:行.排列 二重循环结构 简单的说:二重循环就是一个循环体内又包含另 ...

  6. java中的循环 while

    java中的循环 有三种 for循环 while循环 do..while循环 今天我们主要就讲一种. 叫while循环. 剩下的两种, 我们会在<基础进阶>里继续给大家介绍. while循 ...

  7. java 中for循环中重复定义的变量 为什么不报错?

    java 中for循环中重复定义的变量 为什么不报错? public class Test1 {public static void main(String[] args) {int[] arr = ...

  8. JAVA中for循环来制作正方形、长方形、平行四边形、三角形、菱形、空心菱形

    利用for循环来制作图形 一.代码 1.正方形 2.长方形 3.平行四边形 4.三角形 5.菱形 6.空心菱形 7.效果图 总结 一.代码 1.正方形 代码如下(示例): public class H ...

  9. Java中的增强for循环和break continue的使用 以及流程控制训练

    增强for循环 Java5中引入的用于数组或集合的增强型for循环 声明新的局部变量,该变量的类型必须和数组 for (声明语句:表达式){ 代码句子 } 元素的类型匹配.其作用域限定在循环语句块,其 ...

  10. C++(7)--for循环,break,continue语句

    for循环 1.for循环 2.break 语句 3.continue语句 4.while,do-while,for 循环的异同 5.for循环demo 嵌套循环-打印图形 6.python 中的fo ...

最新文章

  1. dubbo2.5.6从下载到编译成功并且部署成功过程
  2. 世界无人帆船大赛首次登陆中国,水手梦也能用代码实现
  3. python--thread多线程总结
  4. 封装CoreGraphics的API简化绘图操作
  5. BZOJ3626 LNOI2014 LCA 树链剖分
  6. 仿新浪新闻中异步替换关键字
  7. C#读取所有PC中所有进程
  8. matlab数学建模题及答案,数学建模中30道经典 MATLAB程序.doc
  9. 数学最重要 :一个经济博士的总结(常春藤)Ph.D
  10. 裂变活动的5个关键步骤?
  11. 2020最新版python基础入门学习视频教程
  12. keras简单的实际入门教程
  13. mac下使用ipv6观看电视
  14. mysql-select查询操作
  15. 网络安全全面防应对难察觉网络威胁!
  16. 2021-9.15基于目标速度的汽车 ACC系统油门控制策略研究-童宝锋
  17. 期中总结【操作系统】
  18. 图片存储方案-七牛云存储
  19. 建立视图实发工资mysql_MYSQL人事工资管理系统--设计视图(四)
  20. vue使用layer弹窗实现自定义回调函数

热门文章

  1. Larbin学习小结
  2. java 类省_2019 第十届蓝桥杯大赛软件类省赛 Java A组 题解
  3. 洛奇英雄传单机版服务器未响应,洛奇英雄传官方网站
  4. 矿机 矿场 矿池 关系和区别
  5. java怎样学_告诉你java如何学
  6. 清新脱俗的Java选课系统
  7. vscode 插件之 htmltagwrap的修改
  8. 十八、JAVA基本数据类型的包装类
  9. 三、运算符、表达式和语句
  10. 聊聊缓存淘汰算法-LRU 实现原理