无涯教程-Scala - break 语句函数

60 阅读2分钟

因此,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">&lt;-</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">&lt;-</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">&lt;-</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

参考链接

www.learnfk.com/scala/scala…