class MyAr
{
public static void main(String[] args)
{
outer:
for(int i=0; i<2; i++)
{
for(int j=0; j<2; j++)
{
System.out.println("i="+i+"j="+j);
if(i>0)
continue outer;
}
}
System.out.println("Continue");
}
}把continue换成break,貌似输出不变啊。
class MyFor
{
public static void main(String[] args)
{
int i,j;
outer:
for(i=1; i<3; i++)
inner:
for(j=1; j<3; j++)
{
if(j==2)
break outer;
System.out.println("Value for i="+i+" Value for j="+j);
}
}
}把break换成continue,结果变了。。搞不懂break和continue跳转到标号处是怎样执行的呢?
是否保留原来的值?
谢谢!!
{
public static void main(String[] args)
{
outer:
for(int i=0; i<2; i++)
{
for(int j=0; j<2; j++)
{
System.out.println("i="+i+"j="+j);
if(i>0)
continue outer;
}
}
System.out.println("Continue");
}
}把continue换成break,貌似输出不变啊。
class MyFor
{
public static void main(String[] args)
{
int i,j;
outer:
for(i=1; i<3; i++)
inner:
for(j=1; j<3; j++)
{
if(j==2)
break outer;
System.out.println("Value for i="+i+" Value for j="+j);
}
}
}把break换成continue,结果变了。。搞不懂break和continue跳转到标号处是怎样执行的呢?
是否保留原来的值?
谢谢!!
{
int i,j;
outer://用break执行到BBBB处,相当于goto BBBB;
//用continue执行到AAAA处,但不执行IIIII处的初始化语句,即保留i的值作判断
//AAAA:
for(i=1; i<3; i++)//IIIII
inner:
for(j=1; j<3; j++)
{
if(j==2)
break outer;
System.out.println("Value for i="+i+" Value for j="+j);
}
//BBBB:
}
(i=0 outer loop true~ stared inner loop~1 i=0 j=0)
"i=0j=1"
( go on inner loop j++ i=0 j=1)
"i=1j=0" (j++ j<2 inner loop flase,out and go on outer loop
i++ i=1,outer loop true~ stared inner loop~1 i=1 j=0,then ,i>0 true ,so ,goto and star loop outer~,"continue" will no print,stared outer loop,and i++ i=2 i<2 false,
so stop loop forward to print"continue")
"continue" "break" result:"i=0j=0"
"i=0j=1"
"i=1j=0" (j++ j<2 inner loop flase,out and go on outer loop
i++ i=1,outer loop true~ stared inner loop~1 i=1 j=0,then ,i>0 true ,so ,break loop outer~, stop all loop,
print"continue")
"continue"
MyFor result: "break" result:"Value for i=0 Value for j=0"
(i=0 outer loop true~ stared inner loop~1 i=0 j=0)
"Value for i=0 Value for j=1"
( go on inner loop j++ i=0 j=1)
( go on inner loop j++ i=0 j=2)
(then , j==2 true ,so break loop outer~, stop all loop ) "continue" result:"Value for i=0 Value for j=0"
(i=0 outer loop true~ stared inner loop~1 i=0 j=0)
"Value for i=0 Value for j=1"
( go on inner loop j++ i=0 j=1)
( go on inner loop j++ i=0 j=2)
(then , j==2 true ,so forward loop outer~)
"Value for i=1 Value for j=0"
"Value for i=1 Value for j=1"
( go on inner loop j++ i=0 j=2)
(then , j==2 true ,so forward loop outer~)
"Value for i=2 Value for j=0"
"Value for i=2 Value for j=1"
( go on inner loop j++ i=0 j=2)
(then , j==2 true ,so forward loop outer~)
(i++i=3 i<3 flase,so ,loop stop~)
break label;
将标记处的循环中断;
continue label;
终止现在循环,跳至标记处重新开始循环
终止现在循环,跳至标记处继续开始循环
应该是继续,“重新”我是想指循环的动作,它将继续原来的值循环
^^ 用继续适当些
{
public static void main(String[] args)
{
int i;
int j;
outer:
for(i=1; i<3; i++)
inner:
for(j=1; j<3; j++)
if(j==2)
break outer;
System.out.println("Value for i="+i+" Value for j="+j);
}
}上述代码为什么不是无限循环啊?
如果break到outer的地方,应该重新开始循环的呀。。是这样的伐?
Value for i=1 value for j=1
Value for i=2 value for j=1如果是break:
结果为:
Value for i=1 value for j=1为什么break后调到outer这里就结束了。。?
能否帮我分析以下break在这里的执行流程,谢谢!!
我以为是从0开始的。。MyFor result: "break" result:
"Value for i=1 Value for j=1"
( go on inner loop j++ i=1 j=1)
( go on inner loop j++ i=1 j=2)
(then , j==2 true ,so break loop outer,stop
loop) "continue"result:
"Value for i=1 Value for j=1"
( go on inner loop j++ i=0 j=2)
(then , j==2 true ,so forward loop outer~)
"Value for i=2 Value for j=1"
( go on inner loop j++ i=0 j=2)
(then , j==2 true ,so forward loop outer~)
(i++i=3 i<3 flase,so ,loop stop~)
其次,程序语言这东西是E文写的,老外不是乱凑字母来定关键字,你可以翻翻英文字典,
break 断开,破坏~停止...continue 继续....e文,绝对有好处
public static void main(String[] args)
{
int i,j;
outer://用break执行到BBBB处,相当于goto BBBB;
//用continue执行到AAAA处,但不执行IIIII处的初始化语句,即保留i的值作判断
//AAAA:
for(i=1; i<3; i++)//IIIII
inner:
for(j=1; j<3; j++)
{
if(j==2)
break outer;
System.out.println("Value for i="+i+" Value for j="+j);
}
//BBBB:
}
============
你第一个例子是有条件的跳转,而且是先有动作(打印)后跳转;当i>0时,当循环已经结束了,用不用跳转都一样的!