当前位置:编程学习 > JAVA >>

这道有趣的题目,你看明白了没,试着解释一下

public class Breaker2 {
   static String o = "";
   public static void main(String[] args) {
z:for(int x = 2;x<7;x++){
if (x==3)
continue;
if(x==5)
break z;
o = o+x;
}
      System.out.println(o);
   }
} --------------------编程问答-------------------- 246

这里break z 和continue效果一样。 --------------------编程问答-------------------- 出现过无数次的两句话:
continue语句是结束本次循环
break语句是立即结束循环。

public class Breaker2 {
    static String o = "";
    public static void main(String[] args) {
 z:for(int x = 2;x<7;x++){
 if (x==3)
 continue;//结束本次循环,开始下次循环.
 if(x==5)
 break z;//跳出x循环,循环结束.
 o = o+x;
 }
       System.out.println(o);
    }
 } 

最终结果 24 --------------------编程问答-------------------- 运行一下就知道啊,之际卡continue和break的区别去,结果是24 --------------------编程问答-------------------- break z;是跳出z循环,不是goto
z: for (;;)
for (int x = 2; x < 7; x++) {
if (x == 3)
continue;// 结束本次循环,开始下次循环.
if (x == 5)
break z;// 跳出x循环,循环结束.
o = o + x;
}
System.out.println(o);
--------------------编程问答-------------------- --------------------编程问答-------------------- 这个题目 应该被淘汰的吧
老掉牙了
不提倡使用! --------------------编程问答--------------------
引用 1 楼 huntor 的回复:
246

这里break z 和continue效果一样。

结果是24,break z就是跳出循环,而不是continue;继续循环 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 单层循环,标签没有意义。 --------------------编程问答-------------------- 打印结果就知道了
public class Breaker2 {
static String o = "";

public static void main(String[] args) {
z: for (int x = 2; x < 7; x++) {
if (x == 3)
continue;
if (x == 5)
break z;
o = o + x;
System.out.println("x=" + x + "  o=" + o + "\t");
}
System.out.println(o);
}
}

x=2  o=2	
x=4  o=24
24

break z跟break效果一样。 --------------------编程问答--------------------
引用 7 楼 aaoxue 的回复:
引用 1 楼 huntor 的回复:246

这里break z 和continue效果一样。
结果是24,break z就是跳出循环,而不是continue;继续循环


单层循环没必要使用标号 --------------------编程问答-------------------- 除 --------------------编程问答--------------------
引用 11 楼 lizhen19870211 的回复:
引用 7 楼 aaoxue 的回复:引用 1 楼 huntor 的回复:246

这里break z 和continue效果一样。
结果是24,break z就是跳出循环,而不是continue;继续循环

单层循环没必要使用标号

晕哦,记成类似goto的效果了。 --------------------编程问答-------------------- 很明显 结果为24

continue 是结束本次,执行下次循环
break 是立即结束循环

不建议使用 
z:for (; ;) {
}
直接for()  更直观. --------------------编程问答-------------------- 结果是:24!经典的话语:
continue跳出本次循环,
break 跳出整个循环! --------------------编程问答-------------------- z:for(int x = 2;x<7;x++)
要注意这个标识~ --------------------编程问答-------------------- 结果是 24  --------------------编程问答-------------------- 毫无价值的问题 --------------------编程问答--------------------
引用 4 楼 abc41106 的回复:
break z;是跳出z循环,不是gotoObjective C code?123456789z: for (;;)            for (int x = 2; x < 7; x++) {                if (x == 3)                    continue;// 结束本次循环,开始下次循环.               ……


z:

应该算是一个标记把,break z;不就是跳转到那个标记? --------------------编程问答-------------------- 24,有趣在哪里 --------------------编程问答-------------------- z:跳出循环层 一层这个标记没有意义。 --------------------编程问答--------------------
引用 19 楼 dcxy0 的回复:
引用 4 楼 abc41106 的回复:
break z;是跳出z循环,不是gotoObjective C code?123456789z: for (;;)            for (int x = 2; x < 7; x++) {                if (x == 3)                    continue;// 结束本次循环,开始下次循环.      ……

你说的那个是goto吧?
break z应该是跳出z标记把? --------------------编程问答-------------------- 我觉得无论如何也不要使用标号,因为标号有goto之嫌 --------------------编程问答-------------------- O和X可以加吗?? --------------------编程问答--------------------
引用 21 楼 ku2ran 的回复:
z:跳出循环层 一层这个标记没有意义。


同感
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,