“这就是我,一个低调的作者。”
问题
Scala没有像Java一样的break和continue关键字,因此需要使用break或者continue结构的时候该怎么办?
解决方案
Scala确实没有上述两个关键字,但是在类scala.util.control.Breaks中提供了类似的功能。注意:在使用的时候,一定要引入这个类哦!
break的例子
    breakable{
        for(i <- 1 to 10){
            println(i)
            if(i > 4) break//跳出循环
        }
    }很显然,在i大于4的时候,代码就执行到了break这个方法。此时,一个异常被捕获,breakable“关键字”会捕获这个异常,控制流就被打断了。
请注意:break和breakable实际上不是关键字,而是scala.util.control.Breaks类里面的方法。
continue的例子
    for(i <- 1 to 10){
        breakable{
            if(i == 4) break//跳出循环
            println(i)
        }
    }上述代码的意思是当i等于4时,跳出本次循环。具体过程跟break的过程一样。
升级
肯定有小伙伴在想,Scala是否可以像Java一样可以内外多层跳出代码块,答案是肯定的:
    out.breakable{
        for(i <- 1 to 10){
            in.breakable{
                if(i == 4) in.break//跳出内层本次循环
                if(i == 5) out.break//跳出外层循环
                println(i)
if(i == 4) in.break//跳出循环            }
        }
    }总结
从这两段代码,我们可以发现,当跳出的条件成立时候,break方法跳出的就是breakable{//代码块}中的花括号,所以只需要记住这一点,你就可以很轻松地玩转Scala的break和continue了。