Spark记录-Scala循环语句
Scala while循环语句
当给定条件为真时,while
循环重复一个语句或一组语句。它在执行循环体之前测试条件状态。 只要给定的条件为真,while
循环语句重复执行目标语句。
object Demo { def main(args: Array[String]) { // Local variable declaration: var a = 10; // while loop execution while( a < 20 ){ println( "Value of a: " + a ); a = a + 1; } } }
Scala do...while循环语句
与在循环顶部测试循环条件的while
循环语句不同,do...while
循环检查循环底部的条件。 一个do...while
循环类似于while
循环,除了do...while
循环保证至少执行一次。
object Demo { def main(args: Array[String]) { // Local variable declaration: var a = 10; // do loop execution do { println( "Value of a: " + a ); a = a + 1; } while( a < 20 ) } }
Scala for循环语句
for
循环是一种重复控制结构,可以让您有效地编写一个需要执行特定次数的循环。
object Demo { def main(args: Array[String]) { var a = 0; // for loop execution with a range for( a <- 1 to 10){ println( "Value of a: " + a ); } } }
object Demo { def main(args: Array[String]) { var a = 0; // for loop execution with a range for( a <- 1 until 10){ println( "Value of a: " + a ); } } }
object Demo { def main(args: Array[String]) { var a = 0; var b = 0; // for loop execution with a range for( a <- 1 to 3; b <- 1 to 3){ println( "Value of a: " + a ); println( "Value of b: " + b ); } } }
循环与集合
object Demo { def main(args: Array[String]) { var a = 0; val numList = List(1,2,3,4,5,6); // for loop execution with a collection for( a <- numList ){ println( "Value of a: " + a ); } } }
for循环与过滤器
Scala的for
循环允许使用一个或多个if
语句过滤掉一些元素。以下是for
循环与过滤器的语法。 要为for
表达式添加多个过滤器,请使用分号(;
)分隔过滤器。
for( var x <- List
if condition1; if condition2...
){
statement(s);
}
尝试以下示例程序来了解具有过滤器的循环。
示例
object Demo { def main(args: Array[String]) { var a = 0; val numList = List(1,2,3,4,5,6,7,8,9,10); // for loop execution with multiple filters for( a <- numList if a != 3; if a < 8 ){ println( "Value of a: " + a ); } } }
for循环与yield
您可以将变量中的for
循环存储返回值,或通过函数返回。为此,您可以通过关键字yield
来为for
表达式的正文添加前缀。以下是语法 -
var retVal = for{ var x <- List
if condition1; if condition2...
}
yield x
注意 - 大括号已被用来保留变量和条件,并且
retVal
是一个变量,其中x
的所有值将以集合的形式存储。
尝试以下示例程序来了解for
循环与yield
的使用。
object Demo {
def main(args: Array[String]) {
var a = 0;
val numList = List(1,2,3,4,5,6,7,8,9,10);
// for loop execution with a yield
var retVal = for{ a <- numList if a != 3; if a < 8 }yield a
// Now print returned values using another loop.
for( a <- retVal){
println( "Value of a: " + a );
}
}
}