【利用模式匹配打印输入日期今年过去了多少天】

模式匹配包含了一系列备选项,每个都开始于关键字case。每个备选项都包含了一个模式及一到多个表达式。箭头符号=>隔开了模式和表达式。match对应了Java里的switch,但是写在选择器表达式之后。Scala的模式匹配除了可以对之进行匹配之外,还可以对类型进行匹配、对Array和List的元素情况进行匹配、对case class进行匹配、甚至对有值或没值进行匹配。

match表达式通过以代码编写的先后次序尝试每个模式来完成计算,只要发现一个匹配的case,剩下的case不会继续匹配。

def match1(x:Int):String = x match{
  case 1=>"one"
  case 2=>"two"
  case 3=>"thr
  case _="other"
}
printin(match1)

利用if语句和模式匹配来判断今年过去了多少天,代码如下:

package Week3

object days {
  def main(args: Array[String]): Unit = {
    def matchDays(x:Int,y:Int):Int= x match {
      case 1 =>  return y
      case 2 =>  return 31 + y
      case 3 =>  return 59 + y
      case 4 =>  return 89 + y
      case 5 =>  return 120 + y
      case 6 =>  return 150 + y
      case 7 =>  return 181 + y
      case 8 =>  return 212 + y
      case 9 =>  return 242 + y
      case 10 => return 273 + y
      case 11 => return 303 + y
      case 12 => return 334 + y
    }
    print("请输入月份:")
    val m = readInt()
    print("请输入日期:")
    val d = readInt()
    if (d > 0&&d < 32)
      printf("2022年已经过了%d天",matchDays(m,d))
    else
      printf("请输入正确日期!")
  }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

つ旧城孤影ღ

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

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

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

打赏作者

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

抵扣说明:

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

余额充值