for循环
object s5_loop {
def main(args: Array[String]): Unit = {
// for loop
for (a <- 1 to 10) {
print(a + " ")
}
println()
// until不包括边界值
for (a1 <- 1 until 10) {
print(a1 + " ")
}
println()
// while loop
var b = 0
while (b < 10) {
b += 1
print(b + " ")
}
println()
// do while
var c = 0
do {
c += 1
print(c + " ")
} while (c < 10)
println()
// 字符串 for循环
val s: String = "scala"
for (i <- 0 until s.length) {
print(s(i) + "-")
}
println()
for (i <- s) {
print(i + "*")
}
println()
for (i <- 1 to 3; j <- 1 to 3 if i != j) {
print(10 * i + j + " ** ")
}
println()
var arr = {
for (i <- 1 to 10) yield i * 10
}
println(arr)
}
}
scala没有直接的break和continue语句,为了更好的适应函数式编程
可以使用Break对象来达到目的,或者通过定义外部flag标志的方式实现循环终止跳出的功能
import scala.util.control._
object s15_break {
def main(args: Array[String]) {
val numList = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
val loop = new Breaks
loop.breakable {
for (a <- numList) {
println("Value of a: " + a)
if (a == 4) {
loop.break
}
}
}
// 在if结构中去掉continue和break,更好的适应函数式编程
var flag = true
for (b <- numList) {
if (b == 5) {
flag = false
}
if (flag) {
println("Value of b: " + b)
}
}
println("After the loop")
}
}