Scala内建控制-for循环

71 阅读1分钟

输出1~100


    //输出1~100
    for(i <- 1 to 100){
      println(i)
    }
    //var i = 1
    //while(i <= 100){
    //  println(i)
    //  i +=1
    //}
  }
}

输出1~100中的能整除2,3,4,的数字


  //输出1~100中的能整除2,3,4,的数字
    for (i <- 1 to 100; if (i%2 == 0); if (i%3 == 0);if (i%4 == 0)){
    println (i)
    }
  }
}

break 跳出 整个 for 循环



   /** break 跳出 整个 for 循环
    格式:
      breakable {
        for (循环变量 <- 起点 to 终点) {
        break
      }
      }
    *///
    //1.输出1~100中的奇数
    var i = 1
    while(i <= 100){
      println(i)
      i +=2
    }
    for(i <- 1  to  100){
      //如果遇到第一个能整除9的数字就提前结束循环
      if(i%9 == 0){
        //结束循环
        break
      }
      println(i)
    }

  }
}


//breakable + break :优化不是素数的情况下:提前结束循环
  //math.sqrt(n):减少搜索大范围
  val n = 97
  //假设它是素数
  var isPrime = true

  // 处理特殊情况:小于2的数不是素数
  if (n <= 1) {
    isPrime = false
  } else {
    breakable{
      for (i <- 2 to Math.sqrt(n).toInt) {
        if(n % i == 0) {  //能整除
          println(s"${i}能整除")
          isPrime = false
          break;  // 添加分号
        }
        println(i)
      }
    }
  }

  if(isPrime) {
    println(s"${n}是素数" )
  } else {
    println(s"${n}不是素数")
  }
}

弹跳小球


  /**
   * 弹跳小球
   */
  var h:Double = 100
  for(i <-1  to  10 ){
    h = h * 0.5
    i += 1
    h = h * 0.5
  }
  println(i, h)
  for(i <- 1 to 10){
    h = h * 0.5
    println($"第${i}次落地,高度是${h}")
  }
}
}