黑马程序员技术交流社区
标题:
如何跳出当前的多重嵌套循环?
[打印本页]
作者:
prospect
时间:
2012-7-22 12:40
标题:
如何跳出当前的多重嵌套循环?
当有多重循环嵌套时,如何跳出当前的多重嵌套循环?
作者:
黑马高明辉
时间:
2012-7-22 13:02
给你个例子:
以输出101到200的所有素数为例:
lable:
for(int i = 101; i<=200; i++){
for(int j = 2;j < Math.sqrt(i);j++)
{
if(i%j == 0)
continue lable;
}
System.out.println(i);
}
用两个for循环,当执行continue lable;语句时,直接跳到lable处,开始继续执行语句。
用continue语句只能结束本次循环,执行该循环语句的下次循环,而用了lable之后,可以跳出多次for循环(本题为两层,理论上可任意多层)。
作者:
朱烈葵
时间:
2012-7-22 13:38
楼上是的 定义标签,指定跳出
作者:
李东升
时间:
2012-7-22 14:59
本帖最后由 李东升 于 2012-7-23 14:03 编辑
可以使用continue和break关键字来跳出循环。
代码:
public static void main(String[]args){
for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
System.out.print(i+""+j);
if(i==j){
//System.out.print("-");
//continue;
//System.out.print("相同了,跳出全部循环");
//break;
}
System.out.print("'\t");
}
System.out.println();
}
System.out.println("OVER");
}
复制代码
这是没用跳出关键字的嵌套循环,输出结果
00' 01' 02' 03' 04' 05' 06' 07' 08' 09'
10' 11' 12' 13' 14' 15' 16' 17' 18' 19'
20' 21' 22' 23' 24' 25' 26' 27' 28' 29'
30' 31' 32' 33' 34' 35' 36' 37' 38' 39'
40' 41' 42' 43' 44' 45' 46' 47' 48' 49'
50' 51' 52' 53' 54' 55' 56' 57' 58' 59'
60' 61' 62' 63' 64' 65' 66' 67' 68' 69'
70' 71' 72' 73' 74' 75' 76' 77' 78' 79'
80' 81' 82' 83' 84' 85' 86' 87' 88' 89'
90' 91' 92' 93' 94' 95' 96' 97' 98' 99'
OVER
复制代码
使用continue关键字的输出结果。
00-01' 02' 03' 04' 05' 06' 07' 08' 09'
10' 11-12' 13' 14' 15' 16' 17' 18' 19'
20' 21' 22-23' 24' 25' 26' 27' 28' 29'
30' 31' 32' 33-34' 35' 36' 37' 38' 39'
40' 41' 42' 43' 44-45' 46' 47' 48' 49'
50' 51' 52' 53' 54' 55-56' 57' 58' 59'
60' 61' 62' 63' 64' 65' 66-67' 68' 69'
70' 71' 72' 73' 74' 75' 76' 77-78' 79'
80' 81' 82' 83' 84' 85' 86' 87' 88-89'
90' 91' 92' 93' 94' 95' 96' 97' 98' 99-
OVER
复制代码
i和j相同的时候,在if语句结束后的点没有输出,是输出-之后,直接进入下一次循环
使用break关键字的输出结果
00相同了,跳出全部循环
10' 11相同了,跳出全部循环
20' 21' 22相同了,跳出全部循环
30' 31' 32' 33相同了,跳出全部循环
40' 41' 42' 43' 44相同了,跳出全部循环
50' 51' 52' 53' 54' 55相同了,跳出全部循环
60' 61' 62' 63' 64' 65' 66相同了,跳出全部循环
70' 71' 72' 73' 74' 75' 76' 77相同了,跳出全部循环
80' 81' 82' 83' 84' 85' 86' 87' 88相同了,跳出全部循环
90' 91' 92' 93' 94' 95' 96' 97' 98' 99相同了,跳出全部循环
OVER
复制代码
在i和j相等的时候,不止没有输出点,连后面数字都没输出,直接执行i变化后的循环。也就是直接跳出了内层循环
作者:
李菁
时间:
2012-7-22 15:54
continue跳出本次循环,进入下次循环。break跳出整个循环,循环结束
作者:
刘奇
时间:
2012-7-22 23:01
可以用tag标记一下,开始的时候tag为false,当循环到需要退出的时候,tag标记为true
假设是个二重循环,当外层循环到10,内存循环到9的时候退出
简单示例代码:
boolean tag = false
for(int i =0;i<100;i++)
{
if(!tag)
for(int j = 0;j<100;j++)
{
if(i == 10 && j == 9)
{
tag = true;
break;
}
}
else
break:
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2