Scala之循环总结

大家都知道,scala语言和kava语言有很多相似之处,那么循环呢?不用说,肯定也有很多相似的地方,但也有不同的地方,今天就给大家归纳总结下scala中的几种循环使用语法。

while循环

和java中的while循环一样,如果给的循环条件为true,会重复执行循环内的语句,直到条件变为false,语法也是一样的
语法:

while(循环条件){    
   循环代码块
}

举例:

var num = 0
while (num < 10) {    
    println(num)
    num = num + 1
}

do…while循环

和java中的do…while循环一样,循环体先执行一次再去进行循环判断,如果给的循环条件为true,会重复执行循环内的语句,直到while括号内的条件变为false,语法也是一样的
语法:

do{
    循环代码块
}while(循环条件)

举例:

var num = 0
do {
    println(num)
     num += 2
} while (num < 20)

for循环

for循环允许编写一个执行指定次数的循环控制结构。和java一样都是用来表示循环,但是语法却有些差别
语法:

for(i <- 1 to n){
    循环代码块
}

举例:

for (k <-  1 to 10){ 
    println(k)
 }

解析:
以上语法中,n一般是一个可以迭代的对象,如Array或String,也可以是一个数字区间,如 i to j(从 i 至 j 的所有整数,包含 i 和 j),或者 i until j(从 i 至 j 除了 j 的所有整数,不包含j)。
其中,左箭头 <- 用于为变量 x 赋值。

多重for循环嵌套

在 for 循环中你可以使用分号(;)来设置多个区间,它将迭代给定区间所有的可能值,其效果类似于java中的多重循环嵌套:
语法:

for(i <- 1 to n ; j <- 1 to n){
    循环代码块
}

举例:

for (i <- 1 to 10 ; j <- 1 to 10){
    println(i + j)
 }

for循环的过滤使用if

可以使用一个或多个 if 语句来过滤一些元素,不同的条件使用分号 ; 隔开,并列条件都满足才执行循环代码块的语句
语法:

for (k <-  1 to 10 if 判断条件1 ; if 判断条件2 ; ...){ 
      循环代码块
 }

举例:

val num = 10
for(i <- 1 to num ; if i%2==0 ; if i>5 ) {
	println(i * 10)
}

for循环使用yield返回集合

使用yield可以将for循环的返回值作为一个变量存储到一个集合中,最后统一返回。
举例:

scala>  for (i <- 1 to 3) yield i * 10
res1: scala.collection.immutable.IndexedSeq[Int] = Vector(10, 20, 30)

for循环使用by

for循环里面使用by后表示步长,每循环一次加一次步长,直到判断条件不满足为止
举例:

for (k <-  1 to 10 by 2){ 
    println(k)
 }
// 1 3 5 7 9

break跳出循环

当满足判断条件想要跳出循环使当前整个循环结束时,在java中使用break就可以做到,但是在scala中没有这个语句,必须先定义才能使用,breakable在for 循环外面表示,然后可以使用 break()来跳出循环
语法:

breakable{  
   for(i<- 0 to n) {
		循环代码块
	    if(i==n1){
                     break()
  		 }
  	}
 }

举例:

breakable{
 for(i<- 0 to 10) {
     if(i==5){
             break()
     	     }
     println(i)
       }
    }  
    //0 1 2 3 4

break中断嵌套循环

当在循环中使用 break 语句,在执行到该语句时,就会中断循环并执行循环体之外的代码块。在scala中是没有break语句的,所以首先要导一个包,import scala.util.control.Breaks._
举例:

val num  = 10
for(i <- 1 to num){
	println( i )
     for(b <- 1 to num by 3) {            
        if(b>=5){
            break            
         }
         println(b * 10)    
     }//中断嵌套循环
}
//1 10 40

break跳出当前循环,重新开始循环

当在循环中使用 break 语句,当满足判断条件,在执行到该语句时,就会中断当前循环并重新开始执行下一次循环,和java中continue类似,breakable在for循环里面表示 ,然后可以使用 break来跳出当前循环
语法:

val num = 10
for(i<- 0 to num) {
   breakable{  
         if(i==n){
              break
             }
     循环代码块
   }
 }

举例:

for(i<-0 until 10){
     breakable{  
         if(i==3||i==6) {
                break
                    }
                 println(i)
            }
   }
   // 0 1 2 4 5 7 8 9

你可能感兴趣的:(scala)