Java教程

java的及表达式运算符

本文主要是介绍java的及表达式运算符,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

表达式

  • 概念:使用运算符链接的两个变量或值,最终可以得到一个结果 例:

  • int a = 10;
    int b = 20;
    //表达式 a+b  结果:30

  • 当运算过程中参与运算变量类型不一致时结果类型偏向较大的类型 自动类型提升 例:int与double

    ​​​​​​​int a = 10;
    double b = 20.5;
    System.out.println( a+b );//结果:30.5 (double类型)
    例:byte与long
    byte a = 10;
    long b = 2000L;
    System.out.println( a+b );//结果:2010 (long类型)
    
    
    例:byte与byte(特殊)
    byte b1 = 10;
    byte b2 = 120;
    System.out.println( b1+b2 );//结果:130(int类型)
    
    
    
    例:任何类型与String(特殊)
    int a = 10;
    String str = "Hello";
    System.out.println( a + str );//结果:10Hello(String 类型)

  • 提升规则:

    byte/short/char

运算符【重点】

  1. 算数运算符

    int a = 10;
    int b = 2;
    String str = "Hello"
    运算符作用结果
    +加法运算/字符串拼接a+b a+str12 10Hello
    -减法运算a-b8
    *乘法运算a*b20
    /除法运算a/b5
    %取余(模运算)a%b0
  2. 赋值运算符

    int a = 10;
    int b = 2;
    运算符作用结果表达式结果
    =右侧数值赋给左侧的变量a = 20a的值为2020
    +=用变量本身与另一个变量相加求和之后再赋值a+=b 等同于 a = a+ba的值为1212
    -=用变量本身与另一个变量相减之后再赋值a-=b等同于 a = a-ba的值为88
    *=用变量本身与另一个变量相乘之后再赋值a*=b等同于 a = a*ba的值为2020
    /=用变量本身与另一个变量相除之后再赋值a/=b等同于 a = a/ba的值为55
    %=用变量本身与另一个变量取余之后再赋值a%=b等同于 a = a%ba的值为00
    ++变量本身+1++a 等同于 a + 1 a++ 等效于 a + 1a的值为11 a的值为1111 10
    --变量本身-1--a等同于a - 1 a--等效于a - 1a的值为9 a的值为99 10

    面试题:

    int a  = 5;
    int b  = 2;
    a+=(a++)+(++a)-(b--)+(++b); 
    //a=a+(a++)+(++a)-(b--)+(++b);  
    //表达式结果: 变量的变化 a =5  b = 2
    //a = 5+5+(++a)-(b--)+(++b);   (a++)结果为5     a变量6       
    //a = 5+5+7-(b--)+(++b);       (++a)结果为7     a变量7
    //a = 5+5+7-2+(++b);           (b--)结果为2     b变量1
    //a = 5+5+7-2+2;               (++b)结果为2     b变量2
    //17
    每一步都要记录表达式的结果与表达式对变量的影响再进行下一步运算
  3. 关系运算符 作用:判断两个变量之间的关系,结果均为boolean类型

    int a = 10;
    int b = 20;
    运算符作用结果
    >大于a > bfalse
    <小于a < btrue
    ==等于a == bfalse
    !=不等于a != btrue
    >=大于或等于a >= bfalse
    <=小于或等于a <= btrue
  4. 逻辑运算符

    作用:用于多条件联合判断,结果均为布尔类型

    int a = 10;
    int b = 20;
    int c = 2;
    运算符作用结果
    ||逻辑或,表示或者 两个条件(表达式)有一个为true时结果为trueac a>b || a==ctrue false
    &&逻辑与,表示并且 两个条件必须同时为true结果为trueac a>b && a>ctrue false
    !逻辑非,取表达式结果相反的值(颠倒是非)!(a>b)true
    ||、&&为短路运算符:当第一个表达式执行后就能决定整体结果时,不在执行后续表达式
    |、&为非短路运算符:无论之前的表达式结果能不能决定整体结果,所有表达式必须执行一次

  5. 三目运算符

    作用:根据条件的结果返回不同的结果 语法:

    布尔表达式?结果1:结果2;
    布尔表达式为true 返回结果1
    布尔表达式为false 返回结果2

    布尔表达式即结果为boolean类型的表达式

    例:

    int a = 10;
    int b = 20;
    System.out.println( a>b?"Hello":"World" );// 由于a>b为false,返回结果2所以打印World
    System.out.println( a
    
    	

    例:

    //商品价格
    double price = 80D;
            
    //设计程序完成需求:超市打折满100-20
    //根据活动规则计算应付款
    //如果 商品价格>=100 应支付 原价-20 否则 按照原价支付
    double realPrice = price>=100?price-20:price;
    System.out.println("应支付"+ realPrice );

  6. 位运算符

    运算符作用
    &按位与
    |按位或
    ^按位异或
    ~按位非
    <<向左位移
    >>向右位移
    >>>无符号向右位移
这篇关于java的及表达式运算符的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!