因此,Scala中没有内置的break语句,但是如果您运行的是Scala 2.8版,则可以使用 break 语句,当在循环内遇到 break 语句时,循环立即终止,程序控制在循环后的下一条语句处恢复。
break - 语法
以下是break语句的语法。
//导入以下包
import scala.util.control._
//如下创建一个 Breaks 对象
val loop=new Breaks;
//将循环保持在可破坏的内部,如下所示
loop.breakable {
//循环会到这里
for(...){
....
</span><span class="com">//将在这里退出循环</span><span class="pln">
loop</span><span class="pun">.</span><span class="kwd">break</span><span class="pun">;</span><span class="pln">
}
}
尝试以下示例程序以了解break语句。
break - 示例
import scala.util.control._
object Demo {
def main(args: Array[String]) {
var a=0;
val numList=List(1,2,3,4,5,6,7,8,9,10);
val loop</span><span class="pun">=</span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Breaks</span><span class="pun">;</span><span class="pln">
loop</span><span class="pun">.</span><span class="pln">breakable </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">for</span><span class="pun">(</span><span class="pln"> a </span><span class="pun"><-</span><span class="pln"> numList</span><span class="pun">){</span><span class="pln">
println</span><span class="pun">(</span><span class="pln"> </span><span class="str">"Value of a: "</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> a </span><span class="pun">);</span><span class="pln">
</span><span class="kwd">if</span><span class="pun">(</span><span class="pln"> a </span><span class="pun">==</span><span class="pln"> </span><span class="lit">4</span><span class="pln"> </span><span class="pun">){</span><span class="pln">
loop</span><span class="pun">.</span><span class="kwd">break</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
println</span><span class="pun">(</span><span class="pln"> </span><span class="str">"After the loop"</span><span class="pln"> </span><span class="pun">);</span><span class="pln">
}
}
将上述程序保存在 Demo.scala 中。以下命令用于编译和执行该程序。
\>scalac Demo.scala \>scala Demo
Value of a: 1 Value of a: 2 Value of a: 3 Value of a: 4 After the loop
break - 跳出嵌套循环
在用于嵌套循环时,现有中断存在问题。以防万一要为嵌套循环使用break,请遵循此方法,这是一个打破嵌套循环的示例程序。
import scala.util.control._
object Demo {
def main(args: Array[String]) {
var a=0;
var b=0;
val numList1=List(1,2,3,4,5);
val numList2=List(11,12,13);
val outer</span><span class="pun">=</span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Breaks</span><span class="pun">;</span><span class="pln">
val inner</span><span class="pun">=</span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Breaks</span><span class="pun">;</span><span class="pln">
outer</span><span class="pun">.</span><span class="pln">breakable </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">for</span><span class="pun">(</span><span class="pln"> a </span><span class="pun"><-</span><span class="pln"> numList1</span><span class="pun">){</span><span class="pln">
println</span><span class="pun">(</span><span class="pln"> </span><span class="str">"Value of a: "</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> a </span><span class="pun">);</span><span class="pln">
inner</span><span class="pun">.</span><span class="pln">breakable </span><span class="pun">{</span><span class="pln">
</span><span class="kwd">for</span><span class="pun">(</span><span class="pln"> b </span><span class="pun"><-</span><span class="pln"> numList2</span><span class="pun">){</span><span class="pln">
println</span><span class="pun">(</span><span class="pln"> </span><span class="str">"Value of b: "</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> b </span><span class="pun">);</span><span class="pln">
</span><span class="kwd">if</span><span class="pun">(</span><span class="pln"> b </span><span class="pun">==</span><span class="pln"> </span><span class="lit">12</span><span class="pln"> </span><span class="pun">){</span><span class="pln">
inner</span><span class="pun">.</span><span class="kwd">break</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln"> </span><span class="com">//内部 breakable</span><span class="pln">
</span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln"> </span><span class="com">//外部 breakable.</span><span class="pln">
}
}
将上述程序保存在 Demo.scala 中。以下命令用于编译和执行该程序。
\>scalac Demo.scala \>scala Demo
Value of a: 1 Value of b: 11 Value of b: 12 Value of a: 2 Value of b: 11 Value of b: 12 Value of a: 3 Value of b: 11 Value of b: 12 Value of a: 4 Value of b: 11 Value of b: 12 Value of a: 5 Value of b: 11 Value of b: 12