我想在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....
}
答案 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