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")
//}
}
Scala中条件守卫
刘翔在线犯法2024-12-07 8:56
相关推荐
夏幻灵3 小时前
JavaScript this 面试:五种绑定规则、优先级与常见面试陷阱程序猿编码3 小时前
榨干 RTX5090 算力!Qwen3 专用单卡推理引擎,手写C++/CUDA 算子实现 MTP 推测解码苍何3 小时前
开源微信流 Windows,微信聊天记录,可以直接给 Codex 和 Obsidan 了bkspiderx5 小时前
Qt 插件机制:动态扩展应用功能的核心框架代码什么用5 小时前
Spring基础使用程序员老陆5 小时前
深入理解 C++ thread_local:线程私有存储的正确打开方式沐晓时光5 小时前
C语言入门,深入理解指针(3)明月_清风5 小时前
Deno 终局来了:从挑战 Node 到被 Cloudflare 收编码云数智-园园5 小时前
unique_ptr 还是 shared_ptr?C++ 智能指针选型与内存泄漏实战分析蜗牛互联网6 小时前
Java 17 HttpClient调用文件转写API的超时与失败回退