Scala For循环

目录

基础案例

<- start  to  end   前后闭合

对集合进行遍历

<-start until end    前闭后开

循环守卫  类似于Java的 Continue   if成立才会执行打印语句

引入变量

嵌套循环(双重For循环)

循环返回值 ==yield

如何控制步长


       在Scala中  推荐使用For循环  不推荐使用while和do..while循环  因为while和do..while无返回值,所以当用该语句进行计算时,就必须在外部定义一个变量来接受计算结果,这就等于内部对外部变量产生了影响,所以不推荐使用

基础案例

def main(args: Array[String]): Unit = {
    println("范围数据循环方式")
    var start=1
    var end =3
      for (i<-start to end){
        print(i+" ")
      }
}

<- start  to  end   前后闭合

i 表示循环的变量  <- start  to (关键字) end
i 将会从1 - 3 循环  ,前后闭合

对集合进行遍历

def main(args: Array[String]): Unit = {
    println("集合遍历")
    //对集合进行遍历
    var list =List("hello",10,34,"tom")
    for (item<-list){
      print(item +" ")
    }
}

<-start until end    前闭后开

def main(args: Array[String]): Unit = {

    println("<-start until end    前闭后开")
     //前闭后开 循环
    for (i<-start until end ){
      print(i+ " ")
    }
}

循环守卫  类似于Java的 Continue   if成立才会执行打印语句

 def main(args: Array[String]): Unit = {
   
    println("循环守卫  类似于Java的 Continue   if成立才会执行打印语句")
    for (i<-start to end if i!=2){
      print(i+" ")
    }
}

引入变量

def main(args: Array[String]): Unit = {
    println("引入变量 ")
    for (i<-start to end ; j=4-i){
      print(j+" ")
    }
    println("没有关键字,所以范围后面需要加入;来隔断逻辑")
    //上面的代码等价
    for (i<-start to end ){
      var j=4-i
      print(j+" ")
    }
}

嵌套循环(双重For循环)

  def main(args: Array[String]): Unit = { 
   println("嵌套循环(双重For循环) ")
    for (i<-start to end ; j<-start until end){
      print(j+" ")
      if(j==2){
        println()
      }
    }
}

循环返回值 ==yield

def main(args: Array[String]): Unit = {  
println("循环返回值 ")
    val res=for(i<- 1 to 10) yield i
    //1  对 1 to 10  进行遍历
    //2  yield i 将每次循环得到i放入到集合Vector中,并返回给res
    //3  i 这里是一个代码块 ,这就意味着可以对i进行处理
    val res2=for(i<- 1 to 10) yield {
      if(i%2==0){
        i
      }else{
        "不是偶数"
      }
    }
    println(res2)

}

如何控制步长

def main(args: Array[String]): Unit = {
  println("如何控制步长1  Range  是前闭后开遍历")
    val res3=for(i<- Range(1,4,2)){
      print(i+" ")
    }
    println
    println("如何控制步长2  for循环守卫 ")
    val res4=for(i<- 1 to 4 if i%2==1){
      print(i+" ")
    }
}

 

你可能感兴趣的:(Scala)