最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

Scala day 11 (Loop & break & continue)

XAMPP下载 admin 1252浏览 0评论
 while & do…while
while 和 do…while 用法和 java 差不多,條件都是放 boolean 值即可 :

scala> var i = 0
i: Int = 0

scala> while(i < 5) {
|  println(i)
|  i = i + 1
| }
0
1
2
3
4

scala> do {
|  println(i)
|  i = i + 1
| } while(i < 5)
0
1
2
3
4
scala no break & no continue
scala 沒有提供 break 及 continue 這兩個關鍵字使用,所以需使用其他寫法來替代.
需要 import scala.util.control.Breaks 套件的 breakable 及 break :

scala> import scala.util.control.Breaks.breakable
import scala.util.control.Breaks.breakable

scala> import scala.util.control.Breaks.break
import scala.util.control.Breaks.break
使用 breakable 區塊替代 break,下面例子 i == 3 就會 break :

scala> var i = 0
i: Int = 0

scala> breakable {
|  while(i < 5) {
|   if(i == 3) {
|    break
|   }
|   println(i)
|   i = i + 1
|  }
| }
0
1
2
使用 breakable 區塊替代 continue,下面例子 i == 3 就會 continue 不 println :

scala> while(i < 5) {
|  breakable {
|   if(i == 3) {
|    break
|   }
|   println(i)
|  }
|  i = i + 1
| }
0
1
2
4

所以利用 breakable 區塊的位置可以達到 break 及 continue 的效果.
下面例子是使用 scala.util.control.Breaks 物件,搭配混合使用,偶數的話 continue , i == 7 時就 break :

scala> import scala.util.control.Breaks
import scala.util.control.Breaks

scala> val breakobj = new Breaks
breakobj: scala.util.control.Breaks = scala.util.control.Breaks@5284ae6e

scala> val continuobj = new Breaks
continuobj: scala.util.control.Breaks = scala.util.control.Breaks@1bcf8661

scala> breakobj.breakable {
|  while (i < 10) {
|   continuobj.breakable {
|    if (i % 2 == 0) {
|     continuobj.break
|    } else if(i == 7) {
|     breakobj.break
|    }
|    println(i)
|   }
|   i = i + 1
|  }
| }
1
3
5
總結
scala 沒有提供 break 和 continue,但還是可以運用 breakable 來實作出來.

转载请注明:XAMPP中文组官网 » Scala day 11 (Loop & break & continue)

您必须 登录 才能发表评论!