内建控制-循环语句for循环

67 阅读1分钟

for 循环


object basic13 {
  def main(args: Array[String]): Unit = {
// 输出1-20
    /**
     * var i=1
     * while(i<=20){
     * println(i)
     * i+=1
     * }
     *
     *
     * for(i<-1 to 20){
     * println(i)
     *
     * }
      */
    for(j<-1 to 20 ){
      println(j)
    }




    
  }
}

1.基本用法

例子:

  for (j<-1 to 20  by 1){
      println(j)
    }

2.步长

例子:


// 2.步长
// 1 2 3 4 5 6 7 8(步长:1)
// 1 3 5 7  9 11 13 15 (步长:2)
for(i<-1 to 20  by 2){
  println(i)
}

3. 循环守卫 (可以在循环中添加条件,如果条件成立就执行循环。这个叫循环守卫。)

例子:

// 打印1-20的偶数
//    3.循环守卫
    for(i<-1 to 20;if(i%2==0);if(i%3==0)){
        println(i)
      }

4.循环的返回值

(1).for也可以获取到返回值,使用yield。

例如:

object basic15 {
  def main(args: Array[String]): Unit = {
//   1.if 的返回值
//   val res=if(2>1){
//     "a"
//   } else{
//     "b"
//   }
//    println(res)
//
//    2.for 循环的返回值
//    for 循环值是一个列表, 里面保存了多个值
      val rs=for(i<- 1  to  4)yield {
        i*2
      }
   println(rs)// Vector(2,4,6,8)
    println(rs(0))
    println(rs(1))
    println(rs(2))



  }
}

(2)打印1到100的数字,每行显示5个 每组换行

例2.:

object basic17 {
  def main(args: Array[String]): Unit = {
    // 1.打印1到100的数字,每行显示5个  每组换行
    for (i <- 1 to 100) {
      print(s"$i ")
      if (i % 5 == 0) {
        println()
      }
    }

  }
}

(3)输入一个正整数你,输出 斐波那契数列的前n项。

例3:

//2. 输入一个正整数你,输出 斐波那契数列的前n项。
print("请输入一个正整数n(大于等于3):")
val n=scala.io.StdIn.readInt()
var a=1
var b=1
println(s"第${1}项是:1")
println(s"第${2}项是:1")
for(i<-3 to  n){
  val c=a+b
  println(s"第${i}项是:${c}")
  a=b
  b=c
}