Scala语法(二)——控制结构
来源:互联网 发布:海森伯格矩阵的用途 编辑:程序博客网 时间:2024/06/13 01:20
Scala中的基本控制结构有顺序、条件和循环三种方式,这个和其他的JVM语言是一致的,但是Scala也有一些高级的流程控制结构类模式匹配。
1、程序代码:
package com.dtspark.scala.basicobject controlStructures { def main(args: Array[String]): Unit = { println("Scala") var age=10 //此时因为Worker和Student都是字符串,所以result的类型是string类型 val result=if(age>25)"Worker"else"Student" println(result) //此时因为if表达式中的else的内容一个是字符串类型,一个整型,所以result1的类型是两者的公共父类Any val result2=if(age>18)"Adult" else 17 val result3=if(age>18)"Adult" //打印的是(),即返回的是空值,Unit类型 println(result3) var x,y=0 val result4=if(age<18) { x=x+1 y=y+1 x+y }else 0 println(result4) for(i<-0 to 5 if i==2) { println(i) } var flag=true var sum=0 for(i<-0 to 6 if flag) { sum=sum+i if(5==i) flag=false } println("sum="+sum) sum=0 /* for(i<-0 to 6) { sum=sum+i //return返回的是方法级别的,即后面的不会执行,直接退出整个def方法 if(5==i) return } println("sum with return="+sum)*/ for(item<-"Hello Spark") println(item) import scala.util.control.Breaks._ flag=true breakable { while(flag) { for(item<-"Spark") { println(item) if(item=='r') { flag=false break } } } } println("while finished!!!") }}
2、语法说明
if语句,if条件表达式会根据if后面括号里面的boolean值来决定整个if表达式的值
- 1.Scala中的if条件表达式是有值的!!!这个跟java是不一样的
- 2.if条件表达式中可以进行类型推导,类型推导的一般过程就是根据变量值的类型来推导确定变量的类型,这在很多复杂算法的实现时可以让我们
- 省略掉变量的类型的书写,为复杂算法的实现提供了非常大的便利
- 3.下面的例子节选自Spark的核心类SparkContext,如果if后面没有else部分,默认的实现时if(…)…else(),在else部分虽然不返回有意义的结果,但依旧没有省略else,而是使用了else{None}这种方式,其目的是为了确保if条件表达式的类型为处理逻辑需要的类型Optinon,而不是Any类型,为下一步的处理打下基础
例:if(isEventLogEnabled){Some(logger)}else{None} - 4.if条件表达式中如果有多条语句可以使用{}包裹起来,{}中的最后一条语句是计算结果
- 5.{…}代表了一个语句块,语句块是有值的,值就是最后一条语句,值类型就是最后一条语句的类型。
- 6.if表达式可以用在for循环等其它控制结构中用于限制结果
for语句,for循环是不断的循环一个集合,然后根据for循环后面的{…}代码部分会根据for循环(…)里面提取的,集合的item来作为{…}的输入进程流程控制.
1.for循环中加入的if叫做条件守卫,用于限制for循环(优化for循环,去掉不必要的执行步骤,或者说用于跳出for循环)
2.在for循环中能够提取出什么内容取决于后面集合的类型
3.想跳出for循环除了加入if守卫以外,还可以使用return关键字- while循环,也是循环集合来作为{…}的输入,进而完成流程的控制的,while循环在实际,Server和Framework开发中至关重要,例如让一个线程一直循环下去,一般都会使用while
阅读全文
0 0
- Scala语法(二)——控制结构
- Scala 之控制结构(二)
- scala常用语法之控制结构
- Scala坑二(控制结构和函数)
- [scala之二]控制结构和函数
- Scala学习(二)--- 控制结构和函数
- Scala基本语法(二)
- 第一课、Scala基本语法和控制结构
- 【scala 语法基础】变量、函数、控制结构、数据类型
- scala基础3 —— 表达式和控制结构
- scala基础——控制结构和函数
- 《快学Scala》——控制结构和函数
- 【scala 笔记(4)】 控制结构 -- 自定义控制结构
- 控制结构(二)
- Scala学习(基础,控制结构)
- Scala(三)之“控制结构”
- scala控制结构
- Scala控制结构讲解
- ssh框架xml配置文件集合
- 技术重要还是想法重要
- Ubuntu使用PlayOnLinux笔记
- 手动搭建webpack + vue + loader
- 毕设中华淘书网-Mybatis使用心得
- Scala语法(二)——控制结构
- exist count(1) left join 常用函数
- spring中各jar功能及jar包之间的依赖关系
- 第一天学 Kotlin
- 硬盘的那些事(主分区、扩展分区、逻辑分区、活动分区、系统分区、启动分区、引导扇区、MBR等)
- struts2的java.lang.NoSuchMethodException异常处理
- shell流程中for、while、until介绍
- dagger2结合apt自动生成注入代码搭建mvp
- Linux crontab定时执行任务 命令格式与详细例子