版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
scala流程控制语句2知识目标Scala各类流程控制语句的学习Scala各类流程控制语句的使用01能力目标掌握Scala各类流程控制语句的使用02学习目标3目录0102条件表达式if块表达式0304循环表达式while循环表达式for050607异常处理try条件选择表达式match没有break和continue条件表达式if4Scala中的if/else语法结构与Java中的一样,唯一不同的是,Scala中的if表达式是有返回值的。objectScalaAppextendsApp{valx="scala"valresult=if(x.length==5)"true"else"false"print(result)}块表达式5在Scala中,可以使用
{}
块包含一系列表达式,块中最后一个表达式的值就是块的值。objectScalaAppextendsApp{valresult={vala=1+1;valb=2+2;a+b}print(result)}输出:6如果块中的最后一个表达式没有返回值,则块的返回值是Unit类型。scala>valresult={vala=1+1;valb=2+2}result:Unit=()循环表达式while6Scala和大多数语言一样,支持
while
和
do...while
表达式。objectScalaAppextendsApp{
varn=0
while(n<10){n+=1println(n)}
//循环至少要执行一次do{println(n)}while(n>10)}循环表达式for7for循环的基本使用如下:objectScalaAppextendsApp{
//1.基本使用
输出[1,9)for(n<-1until10){print(n)}
//2.使用多个表达式生成器
输出:111213212223313233for(i<-1to3;j<-1to3)print(f"${10*i+j}%3d")
//3.使用带条件的表达式生成器
输出:121321233132for(i<-1to3;j<-1to3ifi!=j)print(f"${10*i+j}%3d")}循环表达式for8除了基本使用外,还可以使用
yield
关键字从for循环中产生Vector,这称为for推导式。scala>for(i<-1to10)yieldi*6res1:scala.collection.immutable.IndexedSeq[Int]=Vector(6,12,18,24,30,36,42,48,54,60)异常处理try9和Java中一样,支持
try...catch...finally
语句。importjava.io.{FileNotFoundException,FileReader}
objectScalaAppextendsApp{
try{valreader=newFileReader("wordCount.txt")}catch{caseex:FileNotFoundException=>ex.printStackTrace()println("没有找到对应的文件!")}finally{println("finally语句一定会被执行!")}}异常处理try10这里需要注意的是因为finally语句一定会被执行,所以不要在该语句中返回值,否则返回值会被作为整个try语句的返回值,如下:scala>defg():Int=tryreturn1finallyreturn2g:()Int
//方法g()总会返回2scala>g()res3:Int=2条件选择表达式match11match类似于java中的switch语句。objectScalaAppextendsApp{
valelements=Array("A","B","C","D","E")
for(elem<-elements){elemmatch{case"A"=>println(10)case"B"=>println(20)case"C"=>println(30)case_=>println(50)}}}符号字面量12但是与Java中的switch有以下三点不同:Scala中的case语句支持任何类型;而Java中case语句仅支持整型、枚举和字符串常量;Scala中每个分支语句后面不需要写break,因为在case语句中break是隐含的,默认就有;在Scala中match语句是有返回值的,而Java中switch语句是没有返回值的。如右:objectScalaAppextendsApp{valelements=Array("A","B","C","D","E")for(elem<-elements){valscore=elemmatch{case"A"=>10case"B"=>20case"C"=>30case_=>50}print(elem+":"+score+";")}}输出:A:10;B:20;C:30;D:50;E:50;没有break和continue13额外注意一下:Scala中并不支持Java中的break和continue关键字。输入和输出14在Scala中可以使用print、println、printf打印输出,这与Java中是一样的。如果需要从控制台中获取输入,则可以使用
StdIn
中定义的各种方
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《国际货运代理》题集
- 《规范汉字书写传承中华文化之美》班会教案3篇
- 3.4.1 二次函数y=ax2+k与y=a(x-h)2的图象与性质 同步练习
- 【人教】期末模拟卷01【九年级上下册】
- 专项24-弧、弦、角、距的关系-重难点题型
- 特殊作业票管理制度
- 语法专题十六 主谓一致【考点精讲精练】-2023年中考语法一点通(学生版)
- 青花瓷的教案8篇
- 新生军训心得体会
- 暑假自我总结
- 监理检测与试验仪器设备一览表实用文档
- 第一单元(知识清单) 【 新教材精讲精研精思 】 七年级语文上册 (部编版)
- 部编版五年级上册第二单元《习作“漫画”老师》一等奖创新教案
- 小学生急救小常识课件
- TCPQS XF003-2023 灭火器产品维修、更换及售后服务
- 医院影像科医疗安全不良事件报告制度
- 内蒙古包头蒙中2022学年八年级上学期期中考试生物模拟试题
- 五星级酒店市场营销部绩效工资方案
- 2015-2022年常州纺织服装职业技术学院高职单招语文/数学/英语笔试参考题库含答案解析
- 产品定价管理制度:内部价格、价格策略制定、定价调价管理制度
- (完整版)电力行业常见的安全隐患
评论
0/150
提交评论