scala默认返回最后一行的值(不用在return了;如果使用了return,那就必须给出返回类型)
1:判断语句
def add(a:int,b:int) = {
if(a>3){
3
}elseif(a<1){
1
}else{
0
}
}
2:循环语句
while(true){
println("hello")
}
//for的基本形态
for(i<-1 to 10){
println(i)
}
1 to 10:这个相当于一个集合
闭区间
我们可以打印出来 println(1 拖10 ) 输出结果为: range(1,2,3,4,5,6,7,8,9,10)
for(i <- 1 to 10)就是吧 集合里面的数据循环出来
for(i <- i.to(10)){println(i)}
for(i <- i.(10)){println(i)}
开区间
for(i <- 1 until 10){
println(i)
}
输出内容是 1,2,3,4,5,6,7,8,9 不包含10
![](https://i-blog.csdnimg.cn/blog_migrate/bf4e8a8fb004a11de6293761fd8ffae0.png)
3:for修改步长方式(这种叫做守卫)
//修改步长
for(i <- 1 to 10 if i%2 ==0 ){
println(i)
}
![](https://i-blog.csdnimg.cn/blog_migrate/9c0843d2157158d597e420e1ed46b019.png)
4:双重for
for(i <- 1 until 10){
for(j <- 1 to 5){
println(i+"_"+j)
}
}
for(i <- 1 to 10; j <- 1 to 5){
println(i+"_"+j)
}
这两个效果一样
![](https://i-blog.csdnimg.cn/blog_migrate/7b42aba789deb6bf88a1fd200165829f.png)
5:循环集合并对每一项处理生成新的集合(for)的推导式
var tmp= for(i <- 1 to 10)yield i*2
println(tmp)
![](https://i-blog.csdnimg.cn/blog_migrate/79942edf18ca6b951ba261f6c35260e3.png)
网上还有一种这样的写法
var tmp=for(i <- 1 to 10)yield(i*2;i+1)
println(tmp)
这样有用scala只会返回最后一行的值 所以,输出的结果是都加了1,(i*2)是没有用的,但是我的版本不只支持这样的写法,估计是版本问题