import scala.collection.immutable
/**
* For循环
*/
object ForDemo {
def main(args: Array[String]): Unit = {
//定义一个数组变量,to后的第一个参数为末位置(包含该值),第二个参数为步长(负数为递减)
val arr1 = 1 to (10, 2)
val arr2 = 10 to (1, -2)
//until不包含最后一个值
val arr3 = 1 until(10)
//Range第一个参数为起始值(包含),第二个参数为末尾值(不包含),第三个参数为步长
val arr4 = Range(0, 10, 2)
//简单For循环
for (a <- arr1) {
println(s"arr1 of ${a}")
}
println("=================打印九九乘法表=================")
println("===================类比JAVA====================")
for (a <- arr3) {
for (b <- 1 to a) {
print(s"${b}*${a}=${a*b}\t")
}
println()
}
// 方法二:当有多个条件时可以全部写在for后的括号内,用;号隔开
// println("===================当有多个条件时可以全部写在for后的括号内,用;号隔开====================")
for (a <- arr3; b <- 1 to a){
print(s"${b}*${a}=${a*b}\t")
if (a == b) {
println()
}
}
// 方法三:使用花括号将for循环的条件一一列出
for {
a <- arr3
b <- 1 to a
}
{
print(s"${b}*${a}=${a*b}\t")
if (a == b) {
println()
}
}
println("============for循环与过滤器===================")
/*
* 语法:for( var x <- List
* if condition1; if condition2...
* ){
* statement(s);
*/
for (a <- arr2 if a != 2; if a != 4) {
println(s"value of ${a}")
}
println("============for循环与yield===================")
/*
* var retVal = for{ var x <- List
* if condition1; if condition2...
* }yield x
* 注意大括号中用于保存变量和条件,retVal 是变量, 循环中的 yield 会把当前的元素记下来,
* 保存在集合中,循环结束后将返回该集合。
*/
val retValue: immutable.Seq[Int] = for {a <- 1 to 10 if a < 8; if a % 2 == 0} yield a
for (a <- retValue) {
println(s"value of ${a}")
}
}
}
【Scala入门】Scala中的For循环
最新推荐文章于 2024-09-14 17:59:47 发布