scala的基本运算②

50 阅读2分钟

位运算:把10进制的数转换成二进制表示,其中一个数字

  • 10进制 2进制
  • 0 0
  • 1 1
  • 2 10
  • 3 11
  • 4 100
  • 5 101
  • 6 110

位运算

  • ①:& 按位或运算符:0&1=0,0&0=0,1&1=0
  • ②:||按位或运算符:0||1=1,0||0=0,1||1=0,,1||0=0
* &换位与运算符 0&0=0,1&0=0,1&1=1
* 6&2 ------>2
* 6         1     1     0
* 2         0     1     0
*      &-------------------
*                 1     0
*
* | 换位或运算符 0|1=1,1|0=1,0|0=0,1|1=1
* 6|2  ------>6
* 6         1      1     0
* 2         0      1     0
*       |--------------------
*           1      1      0
* */

scala中运算符的优先级

  • ①:先乘除,后加减
  • ②:先&&后||(&&d的优先级比||高)
  • ③:算术(+-*%)>关系(><=!=)>赋值(=)
object Base11 {
  def main(args:Array[String]):Unit={
 val result =10-2+3*4/2 //    14
    println(result)

  val a=true
  val b=false
  val c=false
    println(a||b&&c)  //true
  }

}

scala中的精度问题

object Base13 {
  def main(args:Array[String]):Unit={
    val  a=0.1
    val  b=0.2
    val  c=0.3
  //精度问题
  //println(a+b==c)  
    println(1+2==3) //true
    
    println(0.1+0.2==0.3) //false
    
    println(BigDecimal(0.1)+BigDecimal(0.2)==BigDecimal(0.3))//TRUE
    
    println(0.1+0.1==0.2) //true
    
  }

}

注:int类型中的最大整数是2147483647

object Base12 {
  def main(args:Array[String]):Unit={
 val  a=2147483647
    val b=1
    val c=a-(a-b) /2
    println(c)

    //大数字字典运算
    //11111111111111*22222222222222
    val d=BigInt("1111111111111")*BigInt("22222222222222222222")
    println(d)

  }

}

if语句(分支结构)

object Base14 {
  def main(args:Array[String]):Unit={
    //1.获取用户输入的数字
    //2.判断
    //2.输出结果
    print("请输入年龄")
    val age=scala.io.StdIn.readInt()
    if(age>=18){
      println("成年")
    }else{
      println("未成年")
    }

  }

}

eg: 假设一个正方形的边长为a,一个长方形的长为b宽为c,判断正方形的面积大,还是长方形的面积大

object Base15 {
  def main(args:Array[String]):Unit={
        // 输入正方形的边长
        println("请输入正方形的边长 a: ")
        val a = scala.io.StdIn.readDouble()

        // 输入长方形的长
        println("请输入长方形的长 b: ")
         val b = scala.io.StdIn.readDouble()

        println("请输入长方形的宽 c: ")
          val c = scala.io.StdIn.readDouble()

        if(b*c>a*a){
          println("长方形的面积大")
        } else if(b*c<a*a){
          println("正方形的面积大")
        } else{
          println("一样大")
        }
    }
}

eg: 输入正整数分数,输出对应的等级符号,规则如下:[90,100]为A等;[80,89]为B等;[70,79]为C等;[60,69]为D等;[0,59]为E等;

object Base16 {
  def main(args: Array[String]): Unit = {
    print("请输入一个正整数")
    val a = scala.io.StdIn.readInt()
    if (a >= 90 & a <= 100) {
      println("A等")
    } else if (a >= 80 & a <= 89) {
      println("B等")
    } else if (a >= 70 & a <= 79) {
      println("C等")
    } else if (a >= 60 & a <= 69) {
      println("D等")
    } else if (a >= 0 & a <= 59) {
      println("E等")
    }else{
       println("输入分数有误")
    }
  }
}