3.1 运算符介绍

      运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等

      1) 算术运算符

      2) 赋值运算符

      3) 比较运算符(关系运算符)

      4) 逻辑运算符

      5) 位运算符

3.2 算术运算符

  3.2.1 介绍

      算术运算符(arithmetic)是对数值类型的变量进行运算的,在Scala程序中使用非常多

  3.2.2 算数运算符一览图

  3.2.3 案例演示

      +,-,*,/,% 重点讲解 /、%

      +、-、* 是一个道理,完全可以类推

      算数运算符的运算规则和Java一样

object boke_demo01 {

  def main(args: Array[String]): Unit = {

    // / 的使用
var r1: Int = 10 / 3 // 3
println("r1=" + r1)
var r2: Double = 10 / 3 // 3.0
println("r2=" + r2)
var r3: Double = 10.0 / 3 // 3.333333
println("r3=" + r3)
println("r3=" + r3.formatted("%.2f")) // 3.33 // % 的使用
// % 的运算的原则: a % b = a - a/b * b
println(10 % 3) // 1
println(-10 % 3) // -1 // -10 % 3 = (-10)- (-3) * 3 = -10 + 9 = -1
println(-10 % -3) // -1 // -10 % -3 = (-10)- (3) * -3 = -10 + 9 = -1
println(10 % -3) // 1 // ++ 和 --
// 说明,在scala中没有 ++ 和 --, 而使用 +=1 和 -= 1
var num1 = 10
//num1++ 错误
num1 += 1 // 替代 num1++
//num-- 错误
num1 -= 1 // 替代 num1--
println(num1) } }

  3.2.4 细节说明

      1) 对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。例如:var x : Int = 10/3,结果是3

      2) 当对一个数取模时,可以等价a%b=a-a/b*b,这样我们可以看到取模的一个本质运算(和Java的取模运算规则一样)

      3) 注意:Scala中没有++、--操作符,需要通过+=、-=来实现同样的效果

3.3 关系运算符

  3.3.1 基本介绍

      1) 关系运算符的结果都是boolean型,也就是要么时true,要么是false

      2) 关系表达式经常用在if结构的条件中或循环结构的条件中

      3) 关系运算符的使用和Java一样

  3.3.2 关系运算符一览图

  3.3.3 案例演示

object boke_demo01 {

  def main(args: Array[String]): Unit = {

    var a = 12
var b = 9 println(a > b) // true
println(a>=b) // true
println(a<=b) // false
println(a<b) // false
println(a==b) // false
println(a!=b) // true
var flag: Boolean = a > b // true
} }

  3.3.4 细节说明

      1) 关系运算符组成的表达式,我们称之为关系表达式,a>b

      2) 比较运算符“==”不能误写成“=”

      3) 使用陷阱:如果两个浮点数进行比较,应当保证数据类型一致

3.4 逻辑运算符

  3.4.1 介绍

      用于连接多个条件(一般来讲就是关系表达式),最终的结果也是一个boolean值

  3.4.2 逻辑运算符一览图

3.5 赋值运算符

  3.5.1 介绍

      赋值运算符就是将某个运算后的值,赋给指定的变量

  3.5.2 赋值运算符的分类

  3.5.3 赋值运算符特点

      1) 运算顺序从右往左

      2) 赋值运算符的左边只能是变量,右边可以是变量、表达式、常量值/字面量

      3) 复合赋值运算符等价于下面的效果

        比如: a+=3 等价于 a=a+3

  3.5.4 位运算符

      位运算符的规则和Java一样

  3.5.5 Scala不支持三目运算符,在Scala中使用if-else的方式实现

      val num = 5 > 4 ? 5 : 4 //没有

      val num = if (5>4) 5 else 4

3.6 运算符优先级

      1) 运算符有不同的优先级,所谓优先级就是表达式中的运算顺序

      2) 只有单目运算符、赋值运算符是从右向左运算的

      3) 运算符的优先级和Java一样

      运算符优先级小结

        1. () []

        2. 单目运算

        3. 算术运算符

        4. 移位运算

        5. 比较运算符(关系运算符)

        6. 位运算

        7. 关系运算符

        8. 赋值运算

        9. ,

  3.6.1 运算符优先级一览图

3.7 键盘输入语句

  3.7.1 介绍

      在编程中,需要接收用户输入的数据,就可以就可以使用键盘输入语句来获取

  3.7.2 案例演示

      要求:可以从控制台接收用户信息[姓名,年龄,薪水]

import scala.io.StdIn

object boke_demo01 {

  def main(args: Array[String]): Unit = {

    /*
要求:可以从控制台接收用户信息,【姓名,年龄,薪水】
*/
println("请输入姓名")
// alt + enter 自动导入包
val name = StdIn.readLine()
println("请输入年龄")
val age = StdIn.readInt()
println("请输入薪水")
val sal = StdIn.readDouble()
printf("用户的信息为 name=%s age=%d sal=%.2f", name, age, sal) } }

3. Scala运算符的更多相关文章

  1. Scala 基础(七):Scala 运算符

    1 算术运算符 算术运算符(arithmetic)是对数值类型的变量进行运算的,在Scala程序中使用的非常多. 细节说明: 1)对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留 ...

  2. Scala 运算符和集合转换操作示例

    Scala是数据挖掘算法领域最有力的编程语言之一,语言本身是面向函数,这也符合了数据挖掘算法的常用场景:在原始数据集上应用一系列的变换,语言本身也对集合操作提供了众多强大的函数,本文将以List类型为 ...

  3. Scala:访问修饰符、运算符和循环

    http://blog.csdn.net/pipisorry/article/details/52902234 Scala 访问修饰符 Scala 访问修饰符基本和Java的一样,分别有:privat ...

  4. Scala中的运算符

    Scala和Java中的运算符用法基本一致. 一.区别 1."=="和"equals"的用法 Java: String str1 = "abc&quo ...

  5. 一文学会Scala

    整体介绍 Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性. 联邦理工学院洛桑(EPFL)的Martin Odersky于2001 ...

  6. 一篇入门 -- Scala

    整体介绍 Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性. 联邦理工学院洛桑(EPFL)的Martin Odersky于2001 ...

  7. Scala入门教程---《chang哥教你一天搞定Scala》

    <chang哥教你一天搞定Scala> /** * <chang哥教你一天搞定Scala> * scala是一门多范式编程语言,集成了面向对象编程和函数式编程等多种特性. * ...

  8. Scala学习之路 (三)Scala的基本使用

    一.Scala概述 scala是一门多范式编程语言,集成了面向对象编程和函数式编程等多种特性.scala运行在虚拟机上,并兼容现有的Java程序.Scala源代码被编译成java字节码,所以运行在JV ...

  9. Scala_运算符

    Scala运算符与操作数的位置关系,可分为  前缀运算符.中缀运算符.后缀运算符 算术运算符 + - * / % ++ -- 关系运算符 == != < > >= <= 逻辑运 ...

随机推荐

  1. 20165230 Exp3 免杀原理与实践

    目录 1.实验内容 2.基础问题回答 3.实验内容 任务一:正确使用免杀工具或技巧 使用msf编码器,msfvenom生成如jar之类的其他文件 使用veil-evasion 自己利用shellcod ...

  2. JSP标签和JSTL

    Java的5个标签库:核心(c).格式化(fmt).函数(fn).SQL(sql).XML(x) SQL.XML库不推荐使用 核心标签库(c) //taglib指令 <%@ taglib pre ...

  3. 利用web of science做论文综述

    在科研过程中,有时会突然接触一个新的研究方向,那么如何开始呢?本人觉得通过作一个论文综述,将能学到很多知识,对于新的研究方向的学习有着极大的帮助.下面将以电阻抗成像技术(Electrical Impe ...

  4. 关于Activity生命周期的总结

    1.Acitivity的四种状态 (1)运行:位于Activity栈顶,用户可见,可获得焦点. (2)暂停:如果一个活动被另一个非全屏的活动所覆盖(比如一个Dialog),那么该活动就失去了焦点,它将 ...

  5. C/C++的20个位运算技巧

    一提起位运算,人们往往想到它的高效性,无论是嵌入式编程还是优化系统的核心代码,适当的运用位运算总是一种迷人的手段,或者当您求职的时候,在代码中写入适当的位运算也会让您的程序增加一丝亮点,最初当我读&l ...

  6. ubuntu 16.04系统下解决MySQL 5.7版本的root用户重置密码问题

    最近在ubuntu系统上安装了MySQL,但是安装时没有提示输入root用户密码,在网上找了一天解决方案,试图修改root用户下的登入密码,但是网上的帖子都不凑效,最后终于改成功了,因此记下来以供有同 ...

  7. sort和priority_queue的比较函数总结

    对于priority_queue来说,,比较函数为(如果不是结构体,直接int,优先队列默认的是值越大优先级越大): struct st { string str; int pr, value,mar ...

  8. thinkphp使用PHPExcel导出

    thinkphp3. 将PHPExcel下载包放在项目\ThinkPHP\Library\Vendor\PHPExcel thinkphp5 将PHPExcel下载包放在项目\vendor\PHPEx ...

  9. chromedriver与chrome版本映射表

    问题: 利用selenium调用谷歌浏览器时报错,后发现是由于浏览器与浏览器驱动不匹配造成的 C:\Users\\Desktop\selenium>python chrome.py[9956:6 ...

  10. log4net可视化查询

    转自:https://www.cnblogs.com/huangxincheng/p/9120028.html 小步快跑的公司可以最简化操作直接通过log4net将日志写入ElasticSearch ...