免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
好程序員大數(shù)據(jù)學習路線分享Scala分支和循環(huán)

3.3. 條件表達式

表達式:一個具有執(zhí)行結(jié)果的代碼塊。結(jié)果是具體的值或者()

表達式的思考方式:以表達式為中心的編程思想

1.表達式和語句的區(qū)別:表達式有返回值,語句被執(zhí)行。表達式一般是一個語句塊,執(zhí)行后,返回一個值

2.不使用return語句,最后一個表達式即返回值

if/else表達式有值,這個值就是跟在if或者else之后的表達式的值

object ConditionDemo {
  def main(args: Array[String]){
    var x = 1
    //if/else表達式值賦給變量y
    val y = if (x > 0 ) 1 else -1
    println(y)

    //支持混合型表達式
    //返回類型是Any
    val z = if(x>0) "success"  else  -1
    println(z)

 
    //如果缺失else,相當于if(x>2) 1 else ()
    //返回類型是AnyVal
    //如果進行類型判斷和轉(zhuǎn)換,可以使用:
    //var b = if(m.isInstanceOf[Int]) m.asInstanceOf[Int] else 0
    val m = if(x>2) 1
    println(m)

    //scala中,每個表達式都有值,scala中有個unit類,寫作(),相當于Java中的 void
    val n = if(x>2) 1 else ()
    println(n)
    

    //if 嵌套
    val  k= if(x<0) 0 else if (x>=1) 1 else -1
    println(k)

  }

執(zhí)行結(jié)果:

Scala的的條件表達式比較簡潔,例如:

 注意:1,每個表達式都有一個類型

 2,條件表達式有值

 3,混合型表達式,結(jié)果是Any或者AnyVal

 4,scala沒有switch語句

3.4. 塊表達式

object BlockExpressionDemo {
  def main(args: Array[String]){

    var x = 0

    //scala中,{}中可以包含一系列表達式,塊中最后一個表達式的值就是塊的值
    val res = {
      if (x < 0) {
        -1
      } else if (x >= 1) {
        1
      } else {
        "error"
      }
    }
      println(res)

      val x0 = 1
      val y0 = 1
      val x1 = 2
      val y1 = 2
      val distance = {
        val dx = x1 - x0
        val dy = y1 - y0
        Math.sqrt(dx*dx+dy*dy)
      }
      println(distance)

    //塊語句,最后一句是賦值語句,值是unit類型的

     var res2 = {
       val dx = x1 - x0
       val dy = y1 - y0
      val res =  Math.sqrt(dx*dx+dy*dy)
     }
    println(res2)
    
  }

}

執(zhí)行結(jié)果:

注意:

1,塊表達式的值是最后一個表達式的值

2,賦值語句的值是unit類型的,

3.5. 循環(huán)

scala中有for循環(huán)和while循環(huán),用for循環(huán)比較多

for循環(huán)語法結(jié)構:for (i <- 表達式/數(shù)組/集合)

while (條件語句){表達式}

do{ 表達式}while()

object ForDemo
  def main(args: Array[String]){
    //每次循環(huán)將區(qū)間的一個值賦給i
    for( i <- 1 to 10)
      println(i)

    //for i <-數(shù)組
    val arr = Array("a", "b", "c")
    for( i <- arr)
      println(i)

    val s = "hello"
    for(i <- 0 until s.length){
      println(s(i))
    }
    //  或者
    //   for(c <- s)println(c)
    //  或者
    //  for(i <- 0 until s.length){
    //  println(s.charAt(i))
    //使用了隱式轉(zhuǎn)換,把字符串變成一個ArrayCharSequence
    // }
      
    //高級for循環(huán)
    for(i <- 1 to 3 ; j<- 1 to 3 if i != j)
      print((10*i + j) + "")
      println()

    //for推導式,如果for循環(huán)的循環(huán)體以yeild開始,則該循環(huán)會構建出一個集合或者數(shù)組,每次迭代生成其中的一個值。
    val v= for ( i <- 1 to 10 )yield i*10
            println (v)
      
    //也可以借助函數(shù)由初始數(shù)組生成一個新的數(shù)組
      val arr1 = Array(1,2,3,4,5,6,7,8,9)
      val arr2 = arr.map(_*10)
      val arr3 = arr.filter(_%2==0)
      
      
  }
}

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Kotlin學習筆記(二):變量與函數(shù)
Swift流程控制之循環(huán)語句和判斷語句詳解
第三章 JAVA?語言基礎
全面的java入門學習筆記總結(jié)
吐血整理Java編程基礎入門技術教程
java return,break,continue修飾詞的作用
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服