scala 学习笔记 之 循环

来源:互联网 发布:郑州网络销售抓人 编辑:程序博客网 时间:2024/06/15 23:39

对于 for循环   差别 还是有点大    我们来看一下   scala中的for循环 写法   例如 我们想循环 1-10 

 for (i <- 1 to 10) {      println(i)    }
这样打印 1-10 
for中  1 to 10 代表 从1 循环到10   i<- 代表  用 i来接收 1-10   

其实这样的写法 要比 java更简洁

还有另一个关键词叫  until   我们来看一下   

 for (i <- 1 until  10) {      println(i)    }
这样打印出来的是 1-9   

那么现在 to  和  until 的区别 就在于   to 就像java 循环中的  <=      until就像java中的  <  


接下来是循环 集合  其实循环集合  我们在java中更多在用 foreach  也就是增强for循环   

在scala中 的 写法 其实和java很类似  

val list = List(1,2,3,4)    for (i <- list) {      println(i)    }
这样就是循环list集合了     和java相比   只是把   :  换成了  <- 


在此说明  如果 循环的同时需要判断  那么我们可以这样写   

val list = List(1,2,3,4)    for (i <- list if(i%2==0)) {      println(i)    }
在循环的同时  我们只循环 偶数  也就是 除以2取余数为0的  

这样打印出的就只有2和4了 


那么在此大家有没有什么疑问呢?  我看到这的时候 在想  这个if条件 是怎样做的  

是在循环中 不符合if条件的 是不参与循环了  还是继续参与循环  然后条件不成立就不执行代码块了呢   

我们来试一下   先打印 1-10的累加  

 var flag=true;    var sum=0;    val list = List(1,2,3,4,5,6,7,8,9,10)    for (i <- list if (flag)) {       sum+=i;    }    println(sum)

这样打印的是55  没问题   

接下来  我再试试  

 var flag=true;    var sum=0;    val list = List(1,2,3,4,5,6,7,8,9,10)    for (i <- list if (flag)) {        if(i==5)          flag=false;       sum+=i;    }    println(sum)

这样打印出来的是 15  

也就是 还是从1-10进行循环   每次循环 都先判断 flag  

其实scala可以使用这种方式跳出循环

原创粉丝点击