val x =10
val y =if(x ==10) x+1else"我是字符串"
解释:y的类型是Int和String的公共父类型,Int的父类是AnyVal,String的父类是AnyRef,而它们的父类是Any,所以y是Any类型
val y =if(x==10) x+1elsetrue
如果if后面没有跟else,则默认else部分的值是Unit即"()"
1)for循环基本结构
for(i <- 表达式){
statements
}
注意:1 to n: 返回 1 到 n 的区间,包含 n
1 until n: 返回 1 到 n 的区间,不包含 n
1 to 10 by 2:返回 Range(1,3,5,7,9)1 until 10 by 2:返回 Range(1,3,5,7,9)2)条件过滤
简化格式:for( i: Int <-1 to num if i%2==0)println( i *100)
更多守卫:for( i: Int <-1 to num if i%2==0;if i>2)println( i *100)
注:if语句“()”可选
多生成器i <- 表达式
for{ i<-1 to 5if i%2==0; j<-1 to 5if j%2!=0}println(s"$i+$j=${i+j}")3)breakable()跳出循环,
import scala.util.control.Breaks._ //注意先导入
breakable {//调用 breakable()函数,op:=>Unit 表示无参函数for(i <-1 to 10){if(i ==5){break()//调用 break()函数}println(i)}}4)for推导式
for循环以yield开始,则会构造一个集合,每次迭代生成集合中的一个,与第一个生成器兼容