scala for循环
Scala中的for循环有多种形式,可以用于遍历集合、数组或者执行一系列操作。以下是几种常见的Scala for循环形式:
基本for循环:
for (i <- 1 to 5) { println(i) }
这个例子中,for循环从1到5遍历,每次迭代都会打印出当前的值。
使用until的for循环:
for (i <- 1 until 5) { println(i) }
这个例子中,for循环从1到4遍历,不包括上限值5。
遍历集合:
val list = List("apple", "banana", "orange") for (fruit <- list) { println(fruit) }
这个例子中,for循环遍历了一个字符串列表,并打印出每个元素。
嵌套for循环:
for (i <- 1 to 3; j <- 1 to 2) { println(s"i: $i, j: $j") }
这个例子中,使用了两个变量i和j进行嵌套循环,打印出所有可能的组合。
使用if条件的for循环:
for (i <- 1 to 5 if i % 2 == 0) { println(i) }
这个例子中,for循环遍历1到5的数字,但只打印出偶数。
scalafor循环‘
Scala 中 for
循环的使用方法
基本范围遍历
在Scala中,可以通过指定一个数值范围来进行简单的循环操作。下面是一个从1到10打印变量值的例子:
object Demo {
def main(args: Array[String]): Unit = {
var a = 0;
// 遍历从1至10(含)的整数序列并输出每个数字
for(a <- 1 to 10){
println(s"Value of a: $a");
}
}
}
此代码段展示了如何定义一个基本的for
表达式来执行一系列动作,在这里是逐个显示索引值[^1]。
列表过滤与条件判断
除了处理连续的数字区间外,还可以利用if
子句对集合内的成员实施筛选逻辑。例如,当希望跳过特定项或将注意力限定于满足一定标准的对象时,这种方式非常有用。
object ForFilter {
def main(args: Array[String]): Unit = {
val numList = List(1,2,3,4,5,6,7,8,9,10);
// 对列表中的元素应用两个条件:排除等于3以及小于8的情况
for(a <- numList if a != 3; if a < 8 ){
println(s"Filtered value of a: $a");
}
}
}
上述程序片段说明了怎样通过加入额外的布尔测试来控制哪些项目会被访问[^3]。
结合yield创建新集合
另一个强大的特性是能够借助yield
关键字构建新的数据集。这允许开发者不仅读取现有容器里的条目,而且可以在过程中转换它们形成不同的输出形式。
val range = (1 until 11).toArray // 创建包含1到10之间所有正整数的一个数组
val doubledNumbers = for(num <- range) yield 2 * num // 将每一个原始数值翻倍后存储在一个新的数组里
println(doubledNumbers.mkString(", ")) // 输出修改后的序列作为逗号分隔字符串
这段脚本体现了for
推导式的灵活性——不仅能迭代已有结构还能生产派生自这些源的新实例[^5]。
scala for循环的格式
Scala中的for循环通常用于遍历集合、数组或其他可迭代对象,它的基本语法类似于其他一些语言中的增强型for循环。下面是一个简单的for循环示例,它遍历一个整数列表并打印每个元素:
val numbers = List(1, 2, 3, 4, 5)
for (number <- numbers) {
println(number)
}
在这个例子中,“_ <- numbers”是for表达式的主体部分,_
代表临时变量,<-$
表示从给定的集合numbers
中取出一个元素赋值给_
。每次循环都会执行一次println(number)
。
另外,Scala也支持更简洁的生成式for循环(Generator Expression),可以用来创建新的集合,例如:
val evenNumbers = for (i <- 0 until 10 if i % 2 == 0) yield i
println(evenNumbers) // 输出:List(0, 2, 4, 6, 8, 10)
这里,until(10)
生成了一个0到9的序列,if i % 2 == 0
过滤出偶数,yield i
则是将符合条件的元素放入新集合。
相关推荐
















