scala流程控制语句_第1页
scala流程控制语句_第2页
scala流程控制语句_第3页
scala流程控制语句_第4页
scala流程控制语句_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论