scala笔记3:控制结构

1.for/yieldforeach循环

基本用法不再赘述

val a = Array("apple","banana")
for((e,count) <- a.zipWithIndex){
    println(s"$count is &e")
}
0 is apple
1 is banana

#

生成器range

卫语句if

#

遍历一个Map

val names = Map("fname"->"ya","lname"->"fang")
for((k,v)<-names)println(s"key:$k,valus:$v")
key:fname,valus:ya
key:lname,valus:fang

2.在for循环中使用多个计数器

for{
    i <- 1 to 2
    j <- 1 to 2
}println(s"i:$i,j:$j")
i:1,j:1
i:1,j:2
i:2,j:1
i:2,j:2

3.创建for表达式

val a = Array("chris","zed")
val s = for(i <- a)yield i.capitalize
val s = a.map(c=>c.capitalize)
Array("Chris","Zed")
Array("Chris","Zed")

4.实现break

import util.control.Breaks._
breakable{
    for(i <- 1 to 10){
        println(i)
        if(i>4)break
    }
}
1
2
3
4
5
val s = "abcdef"
breakable{
    for(i <- s){
        println(i)
        if(i == 'd')break
        <!--break the for loop-->
    }
}
a
b
c
d
for(i <- s){
    breakable{
        if(i == 'd')break
        println(i)
    }
    println("1")
}
a
1
b
1
c
1
1
e
1
f
1

5.匹配表达式

def getClassAsString(x:Any):String=x match{
    case 1 =>"1"
    case 2 =>"2"
    case _ =>"3"
}
getClassAsString(2)
2

一条case匹配多个条件

val i = 5
i match{
    case 1|3|5|7=>println("odd")
    case 2|4|6|8=>println("even")
}
odd

猜你喜欢

转载自blog.csdn.net/weixin_36926779/article/details/80975490