Scala for循环语句

54 阅读1分钟

(一) for循环

屏幕截图 2025-09-24 145823.png

1.如果循环变量的类型能被推断出来,是可以省略掉变量类型的。

2.这里的数据集可以是任意类型的数据集合,如字符串,集合,数组等等。

for循环比while循环更简洁

利用while循环写出1 ~ 20
var i = 1
while(i <= 20){
  println(i)
  i += 1
}
利用for循环写出1 ~ 20
for(j <- 1 to 20){
  println(j)
}

(二) 循环守卫

可以在循环中添加条件,如果条件成立就执行循环。这个叫循环守卫。

屏幕截图_24-9-2025_15525_www.kdocs.cn.jpeg

提问一:输出 1~20 之间的偶数

for(j <- 1 to 20; if(j % 2 == 0); if(j % 3 == 0)){
  println(j)
}

(三)循环步长

屏幕截图 2025-09-24 153342.png

提问二:如何输出1 ~ 100 之间的奇数?

按1,3,5... 这个格式来输出,这就涉及到步长。

格式1:1 to 5 by 2

格式2:Range(1,5,2)

for(i <- 1 to 100 by 2 ){  
  println(i)  
}

for循环的返回值

for 循环值是一个列表 里面保存了多个值

var rs = for(i <- 1 to 4) yield {
  i * 2
}
println(rs)  // Vector(2,4,6,8)
println(rs(0))  // 2
println(rs(1))  // 4
println(rs(2))  // 6

=============================================================

提问三:打印数字 1~100 每行包括一组五个数 每组换行

for(i <- 1 to 100) {
  //print(s"$i ")
  printf(" %4d ", i)
  if(i % 5 == 0) {
    println()
  }
}

提问四:输入一个正整数n 输出 斐波那契数列 的前n列

print("请输入n的值(大于等于3):")
val n = scala.io.StdIn.readInt()
var a = 1
var b = 2
for (i <- 3 to 10){
  var c = a + b
  println(s"第${i}项是: ${c}")
  a = b
  b = c
}