博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java中多重循环和break、continue语句
阅读量:4312 次
发布时间:2019-06-06

本文共 2414 字,大约阅读时间需要 8 分钟。

一、嵌套循环

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

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

//二重循环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后这里执行了吗?");}

 

转载于:https://www.cnblogs.com/weibanggang/p/11184569.html

你可能感兴趣的文章
Centos6安装图形界面(hdp不需要,hdp直接从github上下载数据即可)
查看>>
CentOS7 中把yum源更换成163源
查看>>
关于yum Error: Cannot retrieve repository metadata (repomd.xml) for repository:xxxxxx.
查看>>
2020-11-18
查看>>
Docker面试题(二)
查看>>
【NOI 2018】归程(Kruskal重构树)
查看>>
注册用户
查看>>
TZC Intercommunication System
查看>>
HDU 4571 SPFA+DP
查看>>
centos 创建以日期为名的文件夹
查看>>
Java Timer触发定时器
查看>>
Page Object设计模式
查看>>
程序的基础知识
查看>>
在VIM中使用GDB调试 – 使用vimgdb
查看>>
python爬虫---从零开始(五)pyQuery库
查看>>
POJ2236(KB5-A)
查看>>
Centos MySQL数据库迁移详细步骤
查看>>
2初出茅庐--初级篇2.1
查看>>
新建 WinCE7.0 下的 Silverlight 工程
查看>>
腾讯的张小龙是一个怎样的人?
查看>>