《scala函数式编程》之基础知识(1)

package com.lyzx.scalaLearn

class Day03 {

  //如果一个方法没有参数可以直接通过对象.方法名的方式调用,不用加括号
  def f1(): Unit ={
    println("这是一个没有参数的方法.....")
  }

  //如果str是一个字符串那么str(2)就是字符串的第3个字符
  def f2(): Unit ={
    val str:String ="123456"
    println("str(2):"+str(2))
    println("str.apply(2):"+str.apply(2))
  }

  //if/else后面的值就是表达式的值  并且可以把它赋值给一个变量
  //在java中可以使用 ?: 三目运算符来做相同的操作
  def f3(): Unit ={
    val x = 99
    val y = if(x > 0) 1 else -1
    println("y="+y)

    //这个表达式即有可能返回字符串类型又有可能返回整型
    val z = if(x >0) "" else -1
    println("z="+z+"="+z.getClass.getName)

    //如果没有else语句则返回值是Unit即()
    //Unit 相当于java中的void但又有所不同  void相当于钱包里没有钱  Unit相当于钱包里有一张写着没钱的没有面值的钞票
    val a = if(x<0) -1
    println("a="+a+"    "+a.getClass.getName)
  }


  def f4(): Unit ={
      val s = "abcdefg"
      for(v <- 0 until s.length){
        print(v+" ")
      }
      println()
      var sum = 0
      for(ch <- "hello"){
        print("-"+ch)
        sum += ch
      }
      println(sum)
  }

  //关于scala中循环退出的问题
  def f5(): Unit ={

    //1、直接退出整个循环(多层循环)
    for(i <- 1 to 5){
      for(j <- 1 to 3){
        println(i+"-"+j)
        if(i == 3 && j == 2 ){
            return
        }
      }
    }
    println("=============================")
  }

  //关于scala中循环退出的问题
  def f6(): Unit ={
    import scala.util.control.Breaks._

    //使用Breaks退出Break块
      for(i <- 1 to 5){
        breakable{
          for(j <- 1 to 3){
            println(i+"="+j)
            if(i == 3 && j == 1 ){
              break
            }
          }
      }
    }
  }

  //关于scala中循环退出的问题,模拟java中的break
  def f7(): Unit = {
    var b1 = true
    val sum1 = 10
    var v1 = 0

    var b2 = true
    val sum2 = 10
    var v2 = 0

    while(v1 < sum1 && b1){
      v2 = 0
      b2 = true
        while(v2 < sum2 && b2){
          println(v1+"-"+v2)
          if(v1 == 3 && v2 == 5){
              b2 = false
          }
          v2 += 1
        }
      v1 += 1
    }
  }

  //
  def f8(): Unit ={
    var b1 = true
    val sum1 = 10
    var v1 = 0

    var b2 = true
    val sum2 = 10
    var v2 = 0

    import  scala.util.control.Breaks._
    while(v1 < sum1 ){
      v2 = 0
      breakable{
        while(v2 < sum2){
          println(v1+"<>"+v2)
          if(v1 == 3 && v2 == 5){
              break()
          }
          v2 += 1
        }
      }

      v1 += 1
    }
  }

  //for的高级循环
  def f9(): Unit ={
    //通过 N to M 生成一个序列   每一个序列可以带一个守护(过滤条件)用来过滤掉一部分序列
    for(i <- 1 to 6 if i != 3){
      print(i+" ")
    }

    println()
    for(i <- 1 to 5 if(i >= 3) ;j <- 1 to 3 if i != j){
      println(i +"  "+j)
    }
  }
}


object Day03{

  def main(args: Array[String]): Unit = {
      val t = new Day03
//    t.f1
//    t.f2
//    t.f3
//    t.f4
//    t.f5
//    t.f6
//    t.f7
//    t.f8
      t.f9

  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值