Scala中的循环

一、for循环

package day1

object For {
  def main(args: Array[String]): Unit = {
    //for循环语法结构:for (i <- 表达式/数组/集合)

    ////for(i <- 表达式),表达式1 to 10返回一个Range(区间),每次循环将区间中的一个值赋给i
    for (i <- 1 to 5) print("hello"+i+"    ")
    println()
    //for(i <- 数组)从数组的下标0开始依次将数组里面的值赋给i
    val array = Array('a','b','c','d','e','f')
    for( i <- array) print("元素:"+i+"    ")
    println()
    //可以根据数据的长度来规定输出数组里面的部分元素
    for( i <- 0 to array.length-1) print("元素:"+array(i)+"    ")
    println()
    for( i <- 0 until array.length) print("元素:"+array(i)+"    ")
    println()
    //To:[ ],Until:[ )

    //高级for循环
    //可以以 变量<-表达式 的形式提供多个生成器,用分号隔开
    for (i <- 1 to 3;j <-1 to 3) print('i'+'*'+'j'+'='+i*j+"    ")
    println()
    //for循环里面的每个生成器都可以加一个condition,是以if开头的Boolean表达式,注意:if之前并没有分号
    for (i <- 1 to 3;j <-1 to 3 if(i==j)) print('i'+'*'+'j'+'='+i*j+"    ")
    println()
    //可以使用任意多的定义,引入可以在循环中使用的变量
    for( i <- 1 to 3; from = 4-i; j <- from to 3) print( 10*i+j+"    ")
    println()
    println("----------------------------------")

    //for推导式
    //如果for循环体以yield开始,则循环会构造出一个集合,每次迭代生成集合中的一个值
    val vector1=for( i <- 1 to 5) yield i*2
    vector1.foreach(println)
  }
}

运行结果:

Scala中的循环_第1张图片



二、while循环

package day1

object While {
  def main(args: Array[String]): Unit = {
    //while循环
    var a = 6
    while (a >0){
      println("hello" + a)
      a -= 1
    }

    println("----------------")
    
    //do..while循环
    var b = 6
    do{
      println("world" + b)
      b -= 1
    }while(b > 0)


  }
}
运行结果:

Scala中的循环_第2张图片



说明:

Scala中的循环_第3张图片

你可能感兴趣的:(scala学习随笔)