scala的for用法
- 遍历
for ( i <- a ){
println(i)
}
- 循环输出
for(i <- 1.to(100)){
println(i)
}
- step步长
for (i <- 1 to(100, 2)) {
println(i)
}
for(i <- 1 to 100 by 2 ){
println(i)
}
- 倒序输出
for(i <- 1 to 100 reverse){
println(i)
}
- 循环守卫
for(i <- 1 to 100 by 2 if i%2==1){
println(i)
}
- 左闭右开
for (i <- 0 until 100) {
println(i)
}
- 引入其他变量
for (i <- 1 to 100 if i % 2 == 0; j = i * i if j < 10000; k = j * j if k < 1000) {
println(s"i=$i, j=$j, k=$k")
}
一个守卫会影响其他守卫
- 退出循环
import scala.util.control.Breaks
Breaks.breakable {
for (i <- 2 until n) {
if (n % i == 0) {
isPrime = false
Breaks.break( )
}
}
}
- 循环嵌套
for(i <- 1 to 9; j <- 1 to i){
print(s"$j * $i = ${i * j}\t")
if(i == j) println()
}
- for推导式(循环返回值)
自认为类似map,哈哈
val r = for (i <- 1 to 100) yield i * i
println(r)