数组的遍历
一、 数组概念
对于每一门编程语言来说,数组(Array)都是重要的数据结构之一,主要用来存储数据类型相同的元素。Scala 语言中提供的数组是用来存储固定大小的同类型元素,数组对于每一门编辑应语言来说都是重要的数据结构之一。
声明数组变量并不是声明 number0、number1、…、number99 一个个单独的变量,而是声明一个就像 numbers 这样的变量,然后使用 numbers[0]、numbers[1]、…、numbers[99] 来表示一个个单独的变量。数组中某个指定的元素是通过索引来访问的。
数组的第一个元素索引为0,最后一个元素的索引为元素总数减1。
例题:
1、定义一个整型数组,打印出所有元素、求数组总和、求最大值
代码如下:
object S_06_数组遍历 {
def main(args: Array[String]): Unit = {
val myArr = Array(1.9, 2.9, 3.4, 3.5)
for (x <- myArr) { //打印所有元素
print(x + " ")
}
println("")
var total = 0.0 // 求数组总和
for (i <- 0 to (myArr.length - 1)) {
total = total + myArr(i)
}
println("sum=" + total)
var max = myArr(0) //求最大值
for (x <- myArr) {
if (x > max) {
max = x
}
}
println("max=" + max)
}
}
二、数组的转化:yield
yield可进行数组转换,及按一定规则有原数组生成一个新数组,原数组不变。
代码如下:
object S_07_数组的转化 {
def main(args: Array[String]): Unit = {
// 定义一个数组
val arr = Array(1, 2, 3, 4, 5, 6, 7, 8, 9)
// 遍历数组,附加条件为偶数
val newArr = for (a <- arr; if a % 2 == 0) yield a * 10
for (x <- newArr) {
print(x+" ")
}
}
}
三、数组之和
定义一个普通函数sum,用于打印整型数组之和。
object S_09_数组之和 {
val a = Array(1, 2)
val z = a(0)
val s = a(1)
def sum(x: Int, y: Int) = {
x + y
}
def main(args: Array[String]): Unit = {
println(sum(z, s))
}
}