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

59 阅读1分钟

for循环:

格式
for ( 循环变量 <- 数据集) {
  // 循环体代码
}

示例代码: 输出1~100

 for(i<-1 to 100){
      println(i)
    }

循环守卫

当后面的条件都满足的时候,才会去执行循环体的内容

格式:
 for(循环变量<- 起点 to 终点;if(条件1);if(条件2);...if)
  println(循环变量)

示例代码: 输出1~100中的能整除2,3,4的数字

for(i<-1 to 100;if(i%2==0);if(i%3==0);if(i%4==0)) {
      println(i)
    }

循环步长

每次循环之后,循环变量的自增数值

格式:
scala
for(循环变量<- 起点 to 终点 by 步长)
println(循环变量)

示例代码: 输出1~100中的奇数

 for(i<- 99 to 1 by -2){
       println(i)
     }

breakable,break

判断素数 示例代码如下:

import scala.util.control.Breaks.{break, breakable}

object day22 {
  def main(args: Array[String]): Unit = {
    //breakable+break:优化不是素数的情况:提前结束循环
    //Math.sqrt(n):减少搜索的范围
    val n=35
    //假设它是素数
    var isPrime=true
    breakable {
      for (i <- 2 to Math.sqrt(n).toInt) {
        if (n % i == 0) { //能整除,结束循环
          println(s"${n}能整除")
          isPrime = false
          break
        }
        println(i)
      }
    }
      if (isPrime) {
        println(s"${n}是素数")
      } else {
        println(s"${n}不是素数")
      }

  }
}

弹跳小球

题目:小球从100米高处自由落下,着地后又会弹回高度的一半再次落下,如此重复。问经过多少次落地后,小球弹起的高度才会低于0.5米 代码如下:

var h:Double=100
var i=0
while(h>=0.5){
  i+=1
  h=h*0.5
}
println(i,h)