Scala中条件守卫

复制代码
package Scala10

import scala.io.StdIn

//模式匹配-条件守卫
object jfhj {
  //
  //  从控制台读入一个数字a,使用(StdIn.readInt)
  //  如果a>=0并且a<=3,打印[0-3]
  //  如果a>=4并且a<=8,打印[4-8]
  //  否则:打印匹配
  //  def main(args: Array[String]): Unit = {
  //    val a = StdIn.readInt() //等待从键盘输入内容
  //    println(s"从键盘输入的数字是:$a")
  //    a match {
  //      case x if x >= 0 && x <= 3 => println(s"[0-3]")
  //      case x if x >= 4 && x <= 8 => println(s"[4-8]")
  //      case _ => println(s"打印未匹配")
  //    }
  //  }
  //  def main(args: Array[String]): Unit = {
  //    for(i<- 2000 to 2040){
  //      i match {
  //        case x if (x%4==0) && (x%100!=0)|| (x%400==0) =>println(s"${x}年是闰年")
  //        case _=>println(s"${i}年不是闰年")
  //      }
  //    }
  //  }
  //  匹配类型
  //  def main(args: Array[String]): Unit = {
  //    val i: Int = 1
  //    val b: Boolean = false
  //
  //    //    Any任意的
  //    //    val x: Any = i
      定义一个变量x,类型无所谓
  //    //    val x: Any = b
  //    val x: Any = "abc"
  //    x match {
  //      case _: Int => println(s"$x 是Int类型的") //_:Int 表示变量是Int类型
  //      case _: Boolean => println(s"$x 是Boolean 类型的")
  //      case _ => println("其他")
  //    }
  //  }

  //  匹配数组
  //  def main(args: Array[String]): Unit = {
  //    var arr1=Array(1,2,3)
  //    var arr2=Array(1,2,4)
  //    var arr3=Array(1,2,9,38)
  //
  //    var arr=Array(100)
  //    arr match {
  //      case Array(0)=>println("只有1个元素,且第一个为0")
  //      case Array(1,x,y)=>println(s"三个元素,且第一个为1,第二个是${x},第三个是${y}")
  //      case Array(1,_*)=>println("n个元素,且第一个为1")
  //      case _ =>println("其他")
  //    }
  //  }
//  匹配case class
//  def main(args: Array[String]): Unit = {
//    case class Stu(name:String)
//    case class Teacher(name:String,subject:String)
//    val s1=Stu("小花")
//    val t1=Teacher("小明","体育")
//
//    val x:Any=t1
//
//    x match {
//      case Stu(a)=>println(s"学生${a}")
//      case Teacher(a,b)=>println(s"${b}老师${a}")
//      case _ =>println("其他")
//    }
//  }

//  定义变量赋值
//def main(args: Array[String]): Unit = {
//  var arr=Array(1,2,3,4,7)
  任务:定义三个变量,分别保存数组中有第一个,第二个,第三个
  var x=arr(0)
  var y=arr(1)
  var z=arr(2)
  要先匹配上,然后在赋值
//  var Array(x,y,_,z,_*)=arr
//
//  println(s"x= $x y= $y z= $z")
//}

}
相关推荐
程序员爱钓鱼14 分钟前
Go语言实战案例-简易计算器(加减乘除)
后端
学不会就看19 分钟前
Django--01基本请求与响应流程
后端·python·django
AI+程序员在路上22 分钟前
Qt6中模态与非模态对话框区别
开发语言·c++·qt
nbsaas-boot5 小时前
Java 正则表达式白皮书:语法详解、工程实践与常用表达式库
开发语言·python·mysql
chao_7895 小时前
二分查找篇——搜索旋转排序数组【LeetCode】两次二分查找
开发语言·数据结构·python·算法·leetcode
Nejosi_念旧6 小时前
解读 Go 中的 constraints包
后端·golang·go
风无雨6 小时前
GO 启动 简单服务
开发语言·后端·golang
小明的小名叫小明6 小时前
Go从入门到精通(19)-协程(goroutine)与通道(channel)
后端·golang
斯普信专业组6 小时前
Go语言包管理完全指南:从基础到最佳实践
开发语言·后端·golang
我是苏苏7 小时前
C#基础:Winform桌面开发中窗体之间的数据传递
开发语言·c#