天天看点

scala_if条件表达式、while循环、for循环表达式

1、if条件表达式

package com.scala.test.Test

object IfTest02 {
  def main(args: Array[String]): Unit = {
    val a:Int=60
    //这种情况和java语言一样
    if(a>60){
      println("大于60")
    }else{
      println("小于等于60")
    }

    //与java不同的是,Scala表达式可以返回一个值,类似于java的三元表达式
    val b= if(a>60) 100 else 0
    println(b)

    //代码块
    //无论条件如何总是返回代码块最后的值
    val c = {
      if(a>60) 100 else 0
      "end"
    }
    println(c)
  }
}
           
小于等于60
0
end
           

2、while循环

while循环结构和java完全一样

package com.scala.test.Test

import scala.collection.mutable.ArrayBuffer

object WhileTest {
  def main(args: Array[String]): Unit = {
    val a : Int = 30
    while (a==30){
      println("a==30")
      //return
    }
    println("a!=30")

//    do{
//      println("a==30")
//    }while(a==30)
    
  }
}
           

3、for循环

(1)基本语法结构

//基本for循环
    for(i <- 1 to 5){
      println(i)
    }

    //嵌套for循环
    for(i <- 1 to 3;j <- 1 to 4){
      println("i: "+i," j: "+j)
    }
           

(2)守卫式for循环

for(i <- 1 to 5 if i % 2 == 0){
      println(i)
    }

      for(i <- 1 to 3;j <- 1 to 4 if j%2==0){
      println("i: "+i," j: "+j)
    }
           

(3)for推导式

package com.scala.test.Test

object ForTest {
  def main(args: Array[String]): Unit = {
    
    //for推导式
    val array = for(i <- 1 to 5 if i%2==0) yield i*2
    for(i<-array){
      println(i)
    }
    println("=========================================")
    //和上面等价
    val array01 = (1 to 5).filter(_%2==0).map(_*2)
    for(i<-array01){
      println(i)
    }


  }

}
           
4
8
=========================================
4
8