object Test { def main(args: Array[String]) { var a = 0; // for loop execution with a range for( a <- 1 to 10){ println( "Value of a: " + a ); } } }
When the above code is compiled and executed, it produces the following result:
C:/>scalac Test.scala C:/>scala Test value of a: 1 value of a: 2 value of a: 3 value of a: 4 value of a: 5 value of a: 6 value of a: 7 value of a: 8 value of a: 9 value of a: 10 C:/>
Following is the example of for loop with range using i until j syntax:
object Test { def main(args: Array[String]) { var a = 0; // for loop execution with a range for( a <- 1 until 10){ println( "Value of a: " + a ); } } }
When the above code is compiled and executed, it produces the following result:
C:/>scalac Test.scala C:/>scala Test value of a: 1 value of a: 2 value of a: 3 value of a: 4 value of a: 5 value of a: 6 value of a: 7 value of a: 8 value of a: 9 C:/>
You can use multiple ranges separated by semicolon (;) within a for loop and in that case loop will iterate through all the possible computations of the given ranges. Following is an example of using just two ranges, you can use more than two ranges as well.
(注意 该部分相当于java 双层嵌套循环)
object Test { 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 ); } } }
When the above code is compiled and executed, it produces the following result:
C:/>scalac Test.scala C:/>scala Test Value of a: 1 Value of b: 1 Value of a: 1 Value of b: 2 Value of a: 1 Value of b: 3 Value of a: 2 Value of b: 1 Value of a: 2 Value of b: 2 Value of a: 2 Value of b: 3 Value of a: 3 Value of b: 1 Value of a: 3 Value of b: 2 Value of a: 3 Value of b: 3 C:/>
还有一个scala容易产生误解的地方
scala> for (i <-1 to 3;a=4-i;j<-a to 3) print (i,j) a就是变量
(1,3)(2,2)(2,3)(3,1)(3,2)(3,3)