嵌套循环

Java语言中的各种循环、选择、中断语句和C/C++一般无二。

选择结构 循环结构 中断(跳转)
if for return
if else while break
if elseif do while continue
switch foreach(遍历数组)  

这里主要讲一下,for嵌套循环中出现中断(跳转)语句的情况。

先看如下一段代码(Test.java):

public class Test{
	public static void main(String[] args){
		System.out.println("The first loop");
		for(int i=0;i<5;i++){
			for(int j=1;j<10;j++){
				if(j%2==0){
					continue;
				}
				System.out.print(j);
			}
			System.out.print("\n");
		}
		System.out.println("The second loop");
		for(int i=0;i<5;i++){
			for(int j=1;j<10;j++){
				if(j%2==0){
					break;
				}
				System.out.print(j);
			}
			System.out.print("\n");
		}
	}
}
// 输出
// The first loop
// 13579
// 13579
// 13579
// 13579
// 13579
//The second loop
//1
//1
//1
//1
//1

continue用于结束本次循环,当次是针对continue所在的那个小循环(上端代码,continue结束的是for循环里的那个for循环中j%2=0的那个单次循环,继续进行第二个for循环里面的j++操作,而不是外层for循环的i++)。

break用于结束当前循环,上段代码为例,当j%2=0,break结束的是内层for循环的整个操作,不再进行内层循环j++操作,直接返回外层循环,进行i++,然后再进行重新进行内层for循环。

拓展:

如果想当内层循环j%2=0时,用continue实现结束外层for循环的本次循环,可以加一个标签实现,标签名自定,通常用label来表示。

如下段代码(Test1.java):

public class Test1{
	public static void main(String[] args){
		System.out.println("The first loop");
		label:for(int i=0;i<5;i++){
			for(int j=1;j<10;j++){
				if(j%2==0){
					continue label;
				}
				System.out.print(j);
			}
			System.out.print("\n");
		}
	}
}
// 输出
// The first loop
// 11111

使用标签后,一旦内循环j%2=0,则结束外层for循环的本次循环,不再进行内层for循环的j++,而是直接进行外层for循环的i++。

同样,break有也类似的用法,只不过break会结束外层for循环,整个结束,不再进行外层和内层的循序。

代码及结果如下(Test2.java):

public class Test2{
	public static void main(String[] args){
		System.out.println("The first loop");
		label:for(int i=0;i<5;i++){
			for(int j=1;j<10;j++){
				if(j%2==0){
					break label;
				}
				System.out.print(j);
			}
			System.out.print("\n");
		}
	}
}
// 输出
// The first loop
// 1

也许我们在学习过程中,会遇到更复杂的循环嵌套,超过两层,甚至三四层,对于他们的解决方法基本类似,只要分清本次循环和当前循环的“循环”是指的哪个即可。另外,如果嵌套太多的话,一定要试着去优化代码!

时间: 2024-10-24 17:10:58

嵌套循环的相关文章

嵌套循环及例题

1.for(;;){ For(;;){ } } 题35 用for嵌套循环,完成以下图形的编程 Class TestForFor{ Public static void main(string[]args){ For(int i1=0;i1<4;i1++){    //①,外层循环控制行 For(int j1=0;j1<5;j1++){    //内层循环控制列 System.out.print("*");} System.out.println( );} For(int i

java学习之嵌套循环

学编程吧java学习之嵌套循环发布了,欢迎大家通过xuebiancheng8.com来访问 java嵌套循环主要是指在while,do...while,和for循环中可以彼此嵌套,比方说在while循环中可以嵌套do...while循环,在do...whilez红可以嵌套for循环,总之,他们之间是可以随意嵌套的,只要语法上正确那就没有问题. 比方说 for(int i = 0 ;i<10;i++){ System.out.println(i); while(i<5){ System.out.

python-day02 while嵌套循环

while循环1.输出打印以#组成的长方形,自己定义长和宽.# -*-encoding:utf-8-*-'''This is script for start docker containor!Auth: cuishuai'''height = int(input("Height:"))width  = int(input("Width:"))num_height = 1 while num_height <= height:    num_width = 1

初识python(条件判断、循环控制、循环次数限制、常用数据类型、字符串格式化、列表常用操作、二进制运算、嵌套循环)

第一天学习 1.pycharm使用遇到的问题: 如果想运行程序A,一定要右键去执行程序A,而不能直接左下角run,那样的话可能会出现运行之前其他程序 pycharm小技巧: 1.多行全选,shift+tab整体往前缩进一个tab 2.多行全选,tab整体向后缩进一个tab 3.多行全选,ctrl+/注释所选代码,再次按ctrl+/注释取消所选代码 4.pycharm中切换3.5和2.7:file菜单-settings-project pycharmPreject--project interpr

java如何跳出多重嵌套循环

Java里的break能跳出循环但是只能跳出一个,goto这个在java中也只是被当作关键是,没有任何作用 要做到跳出多重嵌套循环,可以用此方法 在循环体开头设置一个标志位,设置一个标记,然后使用带此标号的break语句跳出多重循环. public class Test1 { public static void main(String[] args) { JUMP://设置一个标记 使用带此标记的break语句跳出多重循环体   for(int i=1;i<100;i++){ for(int

逗号运算符、do while循环、嵌套循环、数组简介

1.逗号运算符扩展了for循环的灵活性,因为它可以使您在一个循环中使用多个初始化或更新表达式. 实例程序: #include<stdio.h> int main() { const int A=37; const int B=23; int c,d; printf("   c     d\n"); for(c=1,d=A;c<=16;c++,d+=B) printf("%5d  $%4.2f\n",c,d/100.0); return 0; } 运

使用嵌套循环在控制台上输出九九乘法表

Java基本语法中的for循环非常灵活并且可以嵌套使用,其中双层for循环是程序开发中使用最频繁的,常用于操作表格数据,对于行数与列数相同的表格操作代码比较简单,但是类似九九乘法表就不好控制了,因为它的列数要与行数对应,可以说这个表格是个三角形,本实例通过双层循环输出了这个九九乘法表,效果如图所示.在面试与等级考试中也常出现这类题目. 创建MultiplicationTable类,在该类的主方法中创建双层for循环,第一层for循环也称为外层循环,用于控制表格的行:第二层循环也称为内层循环,用于

Oracle表联结之嵌套循环

1.单表访问: 分表,分区,建索引,全表扫描---开并行, 永远把它 放内存,压缩 2.多表关联,任何时刻只能是2个表关联,得到的结果集再和其他表关联. 3.嵌套循环:Oracle从较小结果集(驱动表/外部表)中读取一行,然后和较大结果集(被探查表/内部表)中的所有数据逐条进行比较(嵌套循环可以用于非等值连接),如果符合规则,就放入结果集中,然后取较小结果集的下一条数据继续进行循环,直到结束.嵌套循环只适合输出少量结果集或者是用于快速输出结果集.其实相当于双层FOR循环. SQL> select

for标签之嵌套循环实例精选

接上一篇,轻开B2C电子商务网站用嵌套循环定制展示商品的实例 目的:在一页中显示最多十八件商品,每行显示三件 查询 <!-- 查询数据和显示列表 --> <esql module=base id=list> select we_id,we_num,title,price,sale_url,pubdate from co_sale inner join ( select we_id as tmp_id from co_sale where catalog in @{pPage:cs}

【angularjs基础】ng-repeat嵌套循环报错angular.min.js:89 Error: [ngRepeat:dupes]

再写嵌套循环的时候,提示一个错误 angular.min.js:89 Error: [ngRepeat:dupes] 代码如下 <table class="GridViewTable mtop5px " style="margin-top: 15px;" id="tabVipHallRegisterList" ng-app="" ng-controller="JSJ.CRM.AppFeedBackList.Re