zoukankan      html  css  js  c++  java
  • Scala(三)运算符

    运算符

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

    3.1 算术运算符

      1)基本语法

    运算符

    运算

    范例

    结果

    +

    正号

    +3

    3

    -

    负号

    b=4; -b

    -4

    +

    5+5

    10

    -

    6-4

    2

    *

    3*4

    12

    /

    5/5

    1

    %

    取模(取余)

    7%5

    2

    +

    字符串相加

    He+llo

    Hello

        (1)对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。

        (2)对一个数取模a%b,和Java的取模规则一样。

      2)案例实操

    package com.yuange.scala.day01
    
    object ArithmeticOperator {
      def main(args: Array[String]): Unit = {
        //对于除号“/”,它的整数和小除数是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分
        var a1 : Int = 10 / 3     //3
        println("a1=" + a1)
    
        var a2 : Double = 10 / 3    //3.0
        println("a2=" + a2)
    
        var a3 : Double = 10.0 / 3    //3.33333
        println("a3=" + a3)
        printf("a3=" + a3.formatted("%.2f") + "\n")  //保留小数点2位,四舍五入
    
        //对于一个数取模a%b,和java一样
        var a4 = 10 % 3   //1
        println("a4=" + a4)
      }
    }

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

      1)基本语法

    运算符

    运算                                                                          

    范例

    结果

    ==

    相等于

    4==3

    false

    !=

    不等于

    4=3

    true

    <

    小于

    4<3

    false

    >

    大于

    4>3

    true

    <=

    小于等于

    4<=3

    false

    >=

    大于等于

    4>=3

    true

      2)案例实操

    package com.yuange.scala.day01
    
    object RelationalOperators {
      def main(args: Array[String]): Unit = {
        // >、>=、<=、<、==、!=
        var n1 : Int = 7
        var n2 : Int = 5
    
        println(n1 > n2)  //true
        println(n1 >= n2) //true
        println(n1 <= n2) //false
        println(n1 < n2)  //false
        println(n1 == n2) //false
        println(n1 != n2) //true
      }
    }

    3.3 逻辑运算符

      1)基本语法

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

        假定:变量A为true,B为false

    运算符

    描述

    实例

    &&

    逻辑与

    (A && B) 运算结果为 false

    ||

    逻辑或

    (A || B) 运算结果为 true

    !

    逻辑非

    !(A && B) 运算结果为 true

      2)案例实操

    package com.yuange.scala.day01
    
    object LogicalOperators {
      def main(args: Array[String]): Unit = {
        // &&、||、!
        var a = true
        var b = false
    
        println(a && b)  //false
        println(a || b)  //true
        println(!a)      //false
        println(!b)      //true
      }
    }

    3.4 赋值运算符

      1)基本语法

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

    运算符

    描述

    实例

    =

    简单的赋值运算符,将一个表达式的值赋给一个左值

    C = A + B 将 A + B 表达式结果赋值给 C

    +=

    相加后再赋值

    C += A 等于 C = C + A

    -=

    相减后再赋值

    C -= A 等于 C = C - A

    *=

    相乘后再赋值

    C *= A 等于 C = C * A

    /=

    相除后再赋值

    C /= A 等于 C = C / A

    %=

    求余后再赋值

    C %= A 等于 C = C % A

    <<=

    左移后赋值

    C <<= 2  等于 C = C << 2

    >>=

    右移后赋值

    C >>= 2  等于 C = C >> 2

    &=

    按位与后赋值

    C &= 2   等于 C = C & 2

    ^=

    按位异或后赋值

    C ^= 2   等于 C = C ^ 2

    |=

    按位或后赋值

    C |= 2   等于 C = C | 2

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

      2)案例实操

    package com.yuange.scala.day01
    
    object AssignmentOperators {
      def main(args: Array[String]): Unit = {
        var a1 = 11
    
        a1 += 1
        a1 -= 1
      }
    }

    3.5 位运算符

      1)基本语法

    运算符

    描述

    实例

    &

    按位与运算符

    (a & b) 输出结果 12 ,二进制解释: 0000 1100

    |

    按位或运算符

    (a | b) 输出结果 61 ,二进制解释: 0011 1101

    ^

    按位异或运算符

    (a ^ b) 输出结果 49 ,二进制解释: 0011 0001

    ~

    按位取反运算符

    (~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。

    <<

    左移动运算符

    a << 2 输出结果 240 ,二进制解释: 1111 0000

    >>

    右移动运算符

    a >> 2 输出结果 15 ,二进制解释: 0000 1111

    >>>

    无符号右移

    A >>>2 输出结果 15, 二进制解释: 0000 1111

      2)案例实操

    package com.yuange.scala.day01
    
    object BitwiseOperators {
      def main(args: Array[String]): Unit = {
        // <<
        var a1 : Int = 90
    
        a1 = a1 << 1
        println(a1)
      }
    }

  • 相关阅读:
    SQlServer 从系统表 sysobjects 中获取数据库中所有表或存储过程等对象
    Win7 Print Spooler服務自动关闭
    C# 数据流操作 Stream 相关
    GRUB引导故障解决
    RAID配置层+配额
    磁盘一
    权限管理及归属
    cenos7关闭防火墙 安全机制
    linux用户管理-----账号管理和权限归属设置
    yum 仓构建,源代码安装
  • 原文地址:https://www.cnblogs.com/LzMingYueShanPao/p/14782716.html
Copyright © 2011-2022 走看看