高阶函数(二)

36 阅读1分钟

foreach函数

作用:对数组的每一个元素应用函数。

语法:数组.foreach(元素=>{})

任务: 打印数组中的元素

object z36 {
  def main(args: Array[String]): Unit= {
    //定义一个数组
    val arr = Array (-1,2,-3,-4,5)

    arr.foreach(x => {
      println(x)
    })
    //依次打印每个元素
    arr.foreach(println)
    //依次打印每个元素
//    for(i <- arr){
//      println(i)
//    }
  }
}

filter函数

作用:对数组元素使用函数进行过滤。

语法:新数组= 旧数组.filter(元素=>bool)  它的参数是一个函数,这函数的返回值是布尔值。如果返回为true就保留。

任务:在数组中找出元素是偶数的,并组成新数组。(1,2,3,4,5) → (2,4)

object z35 {
  def main(args: Array[String]): Unit= {
    //定义一个数组
    val arr = Array (0,2,3,4,5)
    // 只保留 arr 中的偶数,并存放在一个新的数组中
    // filter 的参数是一个函数。
    // 如果这个函数返回 true,则当前的元素会保留下来。 
    var arr1 = arr.filter (x => x%2 == 0)
    arr1.foreach(println)
  }
}

[练习]1:

去掉不及格的分数:(60,59,80,70) → (60,80,70)

bject z37 {
  def main(args: Array[String]): Unit= {
    //定义一个数组
    val arr = Array (60,59,80,70)
    val arr1 = arr.filter(x => x >= 60)
    arr1.foreach(println)
  }
}

[练习]2:

对成绩 (100,51,55,67,59,89) 进行处理,如果分数在 56-59 之间,就设置为 60 分,得到的新成绩为(100,51,55,67,60,89)

object z38 {
  def main(args: Array[String]): Unit= {
    //定义一个数组
    val arr = Array (100,51,55,67,59,89)
    val arr1 = arr.map (x => if (x >= 56 && x <= 59) 60 else x)
    arr1.foreach(println)
    }
  }