scala流程控制之for循环详细使用

for循环

(1)打印1~10(包含边界)

for(i<-1 to 10){
   print(i+" ")
}
1 2 3 4 5 6 7 8 9 10 

scala是纯粹的面向对象语言,所以,int类型的1也可以是一个对象,所以,也可以这样写:

for(i<-1.to(10)){
   print(i+" ")
}
1 2 3 4 5 6 7 8 9 10 

不包含边界的的打印为,打印1~9

for(i<-Range(1,10)){
    print(i+" ")
}
1 2 3 4 5 6 7 8 9 

还可以这样

for(i<-1 until 10){
  print(i+" ")
}
1 2 3 4 5 6 7 8 9 

(2)集合遍历

for(i<-Array(1,2,3)){
  print(i+" ")
}

scala还可以遍历其它类型

for(i<-List(1,2,3)){
  print(i+" ")
}
for(i<-Set(1,2,3)){
  print(i+" ")
}

以上结果都是

1 2 3 

(3)循环守卫

由于scala没有continue,所以提供了循环守卫,看下方代码,跳过5

for(i<-1 to 10 if i!=5){
   print(i+" ")
}
1 2 3 4 6 7 8 9 10 

(4)循环步长

for(i<-1 to 10 by 2){
  print(i+" ")
}
1 3 5 7 9

(5)引入变量

for(i<-1 to 10;j=10-i){
      print("("+i+","+j+") ")
    }
    println()
    //还可以这样写
    for{
      i<-1 to 10;
      j=10-i}
    {
      print("("+i+","+j+") ")
    }
(1,9) (2,8) (3,7) (4,6) (5,5) (6,4) (7,3) (8,2) (9,1) (10,0) 
(1,9) (2,8) (3,7) (4,6) (5,5) (6,4) (7,3) (8,2) (9,1) (10,0) 

我们已经学习了scala for循环的基本使用,下面我们来实现一个小功能----九层妖塔

for(i<-1 to 9){
      //打印※号
      val stats=2*i-1
      //打印空格
      val spaces=9-i
      println(" "*spaces+"*"*stats)
    }
        *
       ***
      *****
     *******
    *********
   ***********
  *************
 ***************
*****************

(6)循环返回值

val a = for(i<-1 to 9) yield i
    println(a)
Vector(1, 2, 3, 4, 5, 6, 7, 8, 9)

(7)循环中断

Breaks.breakable(
      for(i<- 1 to 5){
        if(i==3){
          Breaks.break()
        }
        println(i)
      })
1
2

以上是scala的for循环的一些知识点,如果觉得不错,那就动动小手点个赞吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值