Scala 编程题五 模式匹配

1.将该List(1,2,3,4,5,6,"test")中的Int类型的元素加一,并去掉字符串。

代码:

object Test4{
  def main(args: Array[String]): Unit = {
    var num =List(1,2,3,4,5,6,"test")
    var num2 = num.map(
      a => a match {
        case i:Int => i+1
        case s:String => s+1 //匹配类型
      }
    )
    println(num2.filter(a=>a.isInstanceOf[Int]))
  }
}

运行结果:

List(2, 3, 4, 5, 6, 7)

 

2.随机产⽣⼀个a~z之间的⼩写字母,判断是否是元⾳ a e i o u

代码:

object Test {
  def main(args: Array[String]): Unit = {
    var random = new Random()
    var num = random.nextInt(26)+97
    var result = num.toChar
    var result2 = result match {
      case 'a' =>"是元⾳"
      case 'e'=>"是元⾳"
      case 'i'=>"是元⾳"
      case 'o'=>"是元⾳"
      case 'u'=>"是元⾳"
      case _ =>"不是元⾳"
    }
    print("字母:"+result+"判断结果:"+result2)


  }

}

运行结果:

字母:v判断结果:不是元⾳

 

3.编程实现以下功能:读入两个运算数(data1和data2)及一个运算符(op),计算表 达式data1 op data2的值,其中op可为+,-,*,/(用match语句实现)

代码:

object numTest2 {
  def main(args: Array[String]): Unit = {
    println("请输入第一个数")
    var num1 = StdIn.readInt()
    println("请输入第二个数")
    var num2 = StdIn.readInt()
    println("请输入运算符")
    var op = StdIn.readChar()
    var result = op match {
      case '+' => num1 + num2
      case '-' => num1 - num2
      case '*' => num1 * num2
      case '/' => num1 / num2
      case _ =>"其他值"
    }
    println("结果为"+result)
  }

}

运行结果:

请输入第一个数
2
请输入第二个数
3
请输入运算符
+
结果为5

进程已结束,退出代码为 0

 

4.编一程序,对于给定的一个百分制成绩,输出相应的五分制成绩,设90分以上 为’A’80~89为’B’70~79为’C’60~69为’D’60以下’E’(用match语句实现)

代码:

object scoreTest3 {
  def main(args: Array[String]): Unit = {
    println("请输入成绩")
    var score = StdIn.readInt()
    var result = score match {
      case x if(x>=90 && x<=100) =>"等级为A"
      case x if(x>=80) =>"等级为B"
      case x if(x>=70) =>"等级为C"
      case x if(x>=60) =>"等级为D"
      case x if(x<60) =>"等级为E"
      case _ => "无效成绩"
    }
    print(result)
  }

}

运行结果:

请输入成绩
20
等级为E
 这本书绝不轻易放过每个知识点,全书包含有大量习题,要求你自己实现 Scala 标准库或者 Scalaz 中的既有功能。所以,当你读完本书,做完习题后,虽然你的应用开发能力并不会直接提升,但你会体会到构建函数式语言和框架时的难点和取舍,从而增进你的框架开发语言设计的能力。   ——ThoughtWorks Lead Consultant 杨博   这本书所讲授的,正是基于 Scala 的函数式编程基础。基于 Scheme、Haskell 等老牌函数式语言的传统教材的问题在于,相关语言的语法和思维方式与读者现有的知识体系迥异,容易造成较为陡峭的入门门槛。此外,由于这些语言本身的实际应用机会不多,初学者也难以在实战中获得宝贵的直觉和经验。而在 Scala 的帮助下,这本书并不要求你抛开现有的思维方式另起炉灶,它所做的更像是为你现有的思维方式添砖加瓦,从而令你如虎添翼。   ——Spark committer from Databricks 连城   尽管函数式编程在近十多年用得越来越多,但市面上介绍其高阶特性的书却并不多。这本书在这方面是个重要的补充,它不仅仅面向 Scala 程序员,同样面向用任何编程语言开发的程序员,只要你充满好奇心。   ——挖财网首席架构师 王宏江   “让你洞察计算的本质。”   ——Martin Odersky, Scala的作者   “Scala和Java8开发者的函数式编程指南!”   ——William E. Wheeler, TekSystems   “本书向你展示了提升Scala技能的方法和理念,它已超过‘更好的Java’。”   ——Fernando Dobladez, Code54   “里面的练习有些挑战,很有趣,对你在真实世界中使用它很有益。”   ——Chris Nauroth, Hortonworks   “边干边学,而非只是阅读。”   ——Douglas Alan、Eli和Edythe L. Broad,哈佛和麻省理工学院
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lambda-小张

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值