您的位置:首页 > 新闻 > 会展 > 重庆政府官网_北京快三是真的吗_成都网络营销推广公司_谷歌浏览器下载安装2022

重庆政府官网_北京快三是真的吗_成都网络营销推广公司_谷歌浏览器下载安装2022

2025/4/19 4:48:26 来源:https://blog.csdn.net/2502_90677930/article/details/146873557  浏览:    关键词:重庆政府官网_北京快三是真的吗_成都网络营销推广公司_谷歌浏览器下载安装2022
重庆政府官网_北京快三是真的吗_成都网络营销推广公司_谷歌浏览器下载安装2022

一、循环守卫
循环守卫,即循环保护式(也称条件判断式,守卫)。保护式为 true 则进入循环体内部,为false 则跳过,类似于continue。
1、基本语法
for(i <- 1 to 3 if i != 2)
{ print(i + " ")
}
println()
2、案例实操:
需求:输出 1 到 10 中,不等于 6 的偶数的值
object demo01 {
def main(args: Array[String]):Unit = {
for (i <- 1 to 10 if i % 2 == 0 && i != 6) {
println(i + "符合条件的偶数")
}
}
}

二、循环步长
1、基本语法
object demo03 {
def main(args: Array[String]):Unit = {
for (i <- 1 to 10 by 2)
{ println("i=" + i)
}
by 表示步长
2、案例实操:
需求:输出2到20以内,以3为步长的所有数
for (i <- 2 to 20 by 3) {
  println("数值为: " + i)
}

三、嵌套循环
1、基本语法
for(i <- 1 to 3; j <- 1 to 3) {
println(" i =" + i + " j = " + j)
}
没有关键字,所以范围后一定要加;来隔断逻辑
2、案例实操:
需求:使用嵌套循环打印九九乘法表
object demo03 {
def main(args: Array[String]):Unit = {
for (i <- 1 to 9; j <- 1 to i) {
  print(s"$j * $i = ${i * j}\t")
  if (j == i) println()
}

四、循环返回值
1、基本语法
val res = for(i <- 1 to 10) yield i
println(res)
将遍历过程中处理的结果返回到一个新 Vector 集合中,使用 yield 关键字。
2、案例实操
需求:将原集合中所有整数加 3 ,并把结果返回到一个新的集合中。
object demo04{
  def main(args: Array[String]): Unit = {
    val numList = List(1, 2, 3, 4, 5)
    var res = for (i <- numList) yield {
      i + 3
    }
    println(res)
  }
}    

五、倒序打印
案例实操:
需求:倒序打印数组 Array(5, 10, 15, 20, 25) 中的元素。
object demo05{
  def main(args: Array[String]): Unit = {
val arr = Array(5, 10, 15, 20, 25)
for (elem <- arr.reverse) {
  println(elem)
}
}
}

六、循环中断
1、基本说明
Scala 内置控制结构特地去掉了 break 和 continue,是为了更好的适应函数式编程,推荐使用函数式的风格解决break 和continue 的功能,而不是一个关键字。Scala 中使用breakable 控制结构来实现 break 和 continue 功能
2、案例实操
需求:采用异常的方式,在遍历数组时,遇到特定元素就退出循环 。
object demo06{
def main(args: Array[String]): Unit = {
  try {
    val arr = Array(10, 20, 30, 40, 50)
    for (elem <- arr) {
      println(elem)
      if (elem == 30) throw new RuntimeException
    }
  } catch {
    case _: RuntimeException => println("循环因特定条件提前结束")
}
}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com