替代scala中的中断操作

时间:2015-11-02 12:07:05

标签: scala

我想在scala中创建类似下面的内容。

我在c中写它,但我想在scala中完全相同。

int bool = 0,i,j;
for(j=0;j<5;j++){
    for(i=0;i<5;i++){
        if(i==3)
           bool=1;
           break;
    }
    if(bool==0)
        continue;
    some function....
}

1 个答案:

答案 0 :(得分:3)

在Scala中,首选的方法是使用标准库的方法,没有明确支持的,打破功能的好方法。

实现结果的选项是使用takeWhile。如果希望使用foreach可以应用某些副作用逻辑。例如,可以通过引入predicate来引入附加检查。

通过在过滤器中使用谓词可以改进给定的示例代码,但我认为有一个基本的想法。

定义函数

def someFunction(x: Int): Unit = if ( predicate(x)) println(x)
def predicate : (Int) => Boolean = _ % 2 == 0

(0 to 5).takeWhile(_ != 3) foreach someFunction

实施例

(0 to 5).takeWhile(_ != 3) foreach someFunction
0
2
someFunction: (x: Int)Unit
predicate: Int => Boolean