对我想知道为什么?我观察到,根据标签的放置位置,如下面的示例所示,for循环的结果是不同的,我想知道为什么?
stop1: for(int x = 0; x<5;x++) {
for (int y = 0; y < 5; y++) {
if (y == 2) break stop1;
System.out.println("X and/run1 Y:" + x +" "+ y);
System.out.println();
}
}
for(int x = 0; x<5;x++)
stop2:{
for (int y = 0; y<5; y++){
if(y==2) break stop2;
System.out.println("X and/run2 Y:" + x +" "+ y);
System.out.println();
}
}
我在一本Java书中找到了这句话,但我不太明白它到底在说什么:
在程序中,两个嵌套的循环除了一个点是相同的。在第一组中,标签先于外部for循环。在这种情况下,当中断执行时,它会将控制转移到整个for块的末尾,跳过for循环的其余迭代。在第二组中,标签先于外部for的开头花括号。因此,当中断执行时,控制转移到外部for块的末尾,导致下一次迭代发生。
Soz用于长文本。我们将不胜感激。顺便说一句,代码的结果如下
X and/run1 Y:0 0
X and/run1 Y:0 1
X and/run2 Y:0 0
X and/run2 Y:0 1
X and/run2 Y:1 0
X and/run2 Y:1 1
X and/run2 Y:2 0
X and/run2 Y:2 1
X and/run2 Y:3 0
X and/run2 Y:3 1
X and/run2 Y:4 0
X and/run2 Y:4 1
编辑:看起来一个是Rest,另一个是继续,或者一个是Rest两个fors,而另一个只是一个fors?
在程序中,两个嵌套的循环除了一个点是相同的。在第一组中,标签先于外部for循环。在这种情况下,当中断执行时,它会将控制转移到整个for块的末尾,跳过for循环的其余迭代。在第二组中,标签先于外部for的开头花括号。因此,当中断执行时,控制转移到外部for块的末尾,导致下一次迭代发生。
这是一种完全正常的行为,您的代码运行100%正常。以下是在标签上应用中断语句时发生的情况:
大多数情况下,标签直接放置在循环体的前面,如下所示:
motherLoop:
for(int i = 0; i < 5; i++){
//some code
}
通常,在break motherLoop
中对这个标签应用break语句实际上会中断(终止)整个循环,并且流程会从循环之后的代码部分继续。例如:
motherLoop:
for(int i = 0; i < 5; i++){
if(i == 2){
break motherLoop;
}
System.out.println("Hey");
}
System.out.println("I'm done with the loop");
上面的代码生成以下输出:
嘿
嘿
我已经完成了循环
这与传统的中断声明类似。当你有多个循环时,这个概念的真正应用就出现了。现在,回到你的问题:
for(int x = 0; x<5;x++)
stop2:{
for (int y = 0; y<5; y++){
if(y==2) break stop2;
System.out.println("X and/run2 Y:" + x +" "+ y);
System.out.println();
}
}
在上面的代码中,当y==2
时,最里面的循环(因为它是紧跟在标签前面的循环)被破坏。请注意,这不会以任何方式影响最外层的循环。这个流程从最外层循环的下一次迭代开始。
现在,这个:
stop1: for(int x = 0; x<5;x++) {
for (int y = 0; y < 5; y++) {
if (y == 2) break stop1;
System.out.println("X and/run1 Y:" + x +" "+ y);
System.out.println();
}
}
当y==2
时,最外层的循环(因为那是紧接在标签前面的循环)被打破。这会影响最外层循环的所有内容
我希望这有帮助。。快乐的编码!
每当不等于零时,我必须在bgColor中显示红色,否则如果差值等于0,则显示绿色。 以这种方式,我有许多列,当差异不是零时,列应该是红色的,否则是绿色的。 jsp页面中的代码是 如果需要,我可以使用javascript根据
本文向大家介绍探讨JavaScript标签位置的存放与功能有无关系,包括了探讨JavaScript标签位置的存放与功能有无关系的使用技巧和注意事项,需要的朋友参考一下 在网页中,我们可以将JavaScript代码放在html文件中任何位置,但一般放在head或body标签里面。 一般来说,<script>元素放在哪里与其的功能作用是紧密相关的,在这里讨论2种情况: 1、放在<head>里 将<sc
我正在尝试制作一个图形,其中我希望在x轴上有标签和记号,但位置不同。然而,在设置第一个刻度之后,当试图定义新刻度时,之前的刻度似乎被“遗忘”。例如: 到目前为止一切顺利,有了想要的安排<代码> ABC < /代码>用于标记不同的数据点组,它们或多或少地在每个组的中间(我将在后面添加垂直线以使这种分离更加明显),但是蜱应该反映数据,而不是这些人工标签。 但如果我现在尝试向同一轴添加一组不同的记号,则
问题内容: 我正在寻找有关如何在ehcache中使用此新功能后写高速缓存的指南/文档/教程?spring + jpa + ehcache + hibernate中有演示吗? 只是为了方便起见,写后缓存意味着每次我们持久化实体时,它将被写入缓存而不是正确写入数据库吗? 问题答案: 是的Ehcache报价后写高速缓存的事实并 不 意味着使用的Ehcache,像Hibernate任何软件,可以利用它无需
我已经看到了一些关于寻找最小索引的问题。在这个相关的问题上有一个解决方案,它使用2个内置函数,,然后。这种方法的问题是它会对整个列表进行两次检查。是否有任何单个内置函数用于最小/最大索引?
我有一个SVG眼睛图像。并且我想动画虹膜和瞳孔根据鼠标的位置在眼球周围移动。我已经这样了: HTML中的SVG: null null 和JS: null null 并且瞳孔在运动,但我不知道如何使它只在特定的场(一个眼球)上运动。