scala-1(开发环境配置+变量和数据类型+程序流程控制)

开发环境配置

scala下载:https://www.scala-lang.org/download/
解压安装后配置环境变量即可(因为scala需要运行在JVM上,所以需要有JDK环境)
windows配置完成后,在命令行输入scala -version可以出现如下提示,说明配置完成
在这里插入图片描述
Linux系统配置步骤相同
配置完成后,要使用IDEA开发scala需要下载scala插件
点击Flie->Settings->Plugins,在搜索框中搜索scala,下载对应插件
在这里插入图片描述
插件下载完成后,在新建项目时,就可以选择scala选项创建项目了,创建项目时选择IDEA
在这里插入图片描述
在创建MAVEN项目时,需要额外增加scala支持,右键项目目录,选择Add Framework Support,在弹出窗口中选择scala
在这里插入图片描述
配置完成后,可以创建一个scala文件,运行一个简单的程序

object HelloScala {
  def main(args: Array[String]): Unit = {
    println("Hello Scala")
  }
}

在这里插入图片描述

变量和数据类型

在这里插入图片描述

  • Any:所有类的超类(类似于JAVA中的Object,区别在于Any同时是基本类型的超类)
  • AnyVal:表示值类型的超类
  • AnyRef:表示引用类型的超类
  • Unit:空的值类型
  • Null:空的引用类型
  • Nothing:所有类的子类

scala中的基本数据类型和java基本一致,只是变量字母需要首字母大写

数据类型描述
Byte8位有符号整数
Short16位有符号整数
Int32位有符号整数
Long64位有符号整数
Float32位单精度浮点数
Double64位双精度浮点数
Char16位无符号Unicode字符
Boolean布尔值,true或false

字符串插值器

  • s插值器
val name = "zhangsan"
val height = 1.83
println(s"姓名:$name 身高:$height")

类似于shell中的变量调用,在输出字符串前标记s,可以在字符串中用${变量名}的形式访问变量的值

  • f插值器
println(f"姓名:$name%s 身高:$height%6.3f")

输出字符串前标记为f,可以在变量名后增加限制,%s为字符串,%d为整形数值,%f为浮点型数值,f前的数值,小数点后的数字表示输出的数值小数点后的位数,小数点前的数值表示输出的数值的总位数(包括小数点),若输出位数大于或等于限制位数则原样输出,否则将在前面补加空格

  • raw插值器
println("abc\r\ndef")
println(raw"abc\r\ndef")

在输出字符串前添加标记raw,表示不解析字符串中的特殊字符,输出结果:
在这里插入图片描述

程序流程控制

条件判断

条件判断语句和java相同

if (condition1){
  branch1
}else if (condition2){
  branch2
}...
else{
  branchN
}

注意:

  • scala中可以不使用return关键字,一个代码块中能够运行到的最后一行代码会自动被作为返回值返回
  • scala中不支持三目运算,取而代之使用if-else条件判断,最终取值为if-else结构中能够运行到的最后一行代码
  • scala不支持switch操作,而是使用模式匹配(match…case)语法,功能要比switch更强大

循环结构

scala也有for、while和do…while三种循环结构

for循环

for (i <- 1 to 3){//i取值从1到3
    print(i+" ")
}

for(i <- 1 until 3){//i取值从1到2
    print(i+" ")
}

可以在循环后面添加限制条件,只有当条件满足时才可以执行循环体,这些条件称为循环守卫

for (i <- 1 to 20 if i!=10){
  println(i)
}

可以同时设置多个条件,使用;分隔,满足全部条件时才可以执行循环体

for (i <- 1 to 20 if i != 10; if i % 3 == 0) {
  println(i)
}

也可以在for循环位置设置变量

for (i <- 1 to 20 if i != 10; if i % 3 == 0; j = 13) {
  println(i + j)
}

循环步长

循环结构中的1 to 20实际上是从1到20的集合,对于所有包含多个元素的对象(包括所有集合、元组甚至字符串),都可以作为for循环的取值范围

当取值范围内的元素是数值类型时(包括整形和浮点型),都可以在定义范围后,在后面添加by 步长后缀定义取值的步长

for (i<-1 to 20 by 3){
  println(i)
}

运行结果
在这里插入图片描述
需要注意,当取值范围内的元素为整型数值时,步长不可以定义为浮点型数值

步长可以取负值,此时就代表从数值较大一方开始向数值较小一方移动,取值范围需要对应调整

for (i<-20 to 1 by -3){
  println(i)
}

输出结果:
在这里插入图片描述
while和do…while循环和java语法相同,不多做解释

循环终止

需要引入Breaks,并将需要终止的循环放在breakable代码块中

//scala导包语句可以放在任意位置,但仅在导包以后位置生效
import scala.util.control.Breaks._
breakable(
  for (i <- 1 to 20) {
    if (i == 14) {
      break()
    }
    println(i)
  }
)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值