天天看点

[scala基础]--for操作

运行环境:jdk1.7、scala-2.10.4      
简单的for操作:      
package study

//内建控制结构yiled
object TestYield {

  //程序入口
  def main(args: Array[String]): Unit = {
    Test3()
  }
  case class Test3() {
    var filename = (new java.io.File(".")).listFiles()

    //等差数列
    def getEquals=for(i <-6 to 1 by -2)yield i
    def getEquals2=for(i <-1 to 3 by 2)yield i

    def getCompare=for(j <-1 to 2)yield j*2

    for(y<-getCompare){
      println("等差数列:"+y)
    }

    for(x<-getEquals2){
      println("等差数列2:"+x)
    }
    for(x<-getEquals){
      println("等差数列:"+x)
    }
    //如果是前包后不包含,使用until
    for (x <- 1 until 6 if x % 2 == 0) println("until偶数:" + x)

    //如果是前后都包含使用to
    for (m <- 1 to 6) { println("to产生:" + m)}
    for (n <- 1 until 6) {println("until产生:" + n)}
    for (file <- filename) {
      println("当前目录文件:" + file)
    }

  }
}      
结果:      
等查数列:2
等查数列:4
等差数列2:1
等差数列2:3
等差数列:6
等差数列:4
等差数列:2
until偶数:2
until偶数:4
to产生:1
to产生:2
to产生:3
to产生:4
to产生:5
to产生:6
until产生:1
until产生:2
until产生:3
until产生:4
until产生:5
文件名:.\.idea
文件名:.\pom.xml
文件名:.\scala-test.iml
文件名:.\sparklib
文件名:.\src
文件名:.\target
文件名:.\txt      
test("2018年5月7日14:55:01 测试for循环中遍历多个数组"){

    for(a <- 0 to 3 ; b<- 0 to 2){
      logger.warn(s"a ---> $a ,b ---->$b .")
    }
  }