Java基础—运算符篇(从0到1完整详解,附有代码+案例)

运算符

分类:

赋值运算符:=

算术运算符: + - * / % ++ – += -= /= %=

关系运算符:> < == >= <= != (也叫 比较运算符)

逻辑运算符:&& | | !

三元运算符: __ ?__ : __;

2.1.算术运算符

2.1.1基本算数运算

符号作用说明
+
-
/取结果的商
%取模、取余取结果的余数
package code02.demo01;
public class test01 {
    public static void main(String[] args) {
        System.out.println(3 + 2);//5
        System.out.println(5 - 1);//4
        //* (shift + 数字8)
        System.out.println(7 * 9);//63
      
     //如果在计算的时候有小数参与
    //在代码中,如果有小数参与计算,结果有可能不精确的。
    System.out.println(1.1 + 1.1);//2.2
    System.out.println(1.1 + 1.01);//2.1100000000000003
    System.out.println(1.1 - 1.01);
    System.out.println(1.1 * 1.01);
      
    //====================================
      
      //1.整数参与计算,结果只能得到整数
    //2.小数参与计算,结果有可能是不精确的,如果我们需要精确计算,那么需要用到后面的知识点。
    public static void main(String[] args) {
        //除法
        System.out.println(10 / 2);//5
        System.out.println(10 / 3);//3
        System.out.println(10.0 / 3);//3.3333333333333335
      
      
    //取模,取余。实际上也是做除法运算,只不过得到的是余数而已。
    System.out.println(10 % 2);//0
    System.out.println(10 % 3);//1
    }
}

2.1.2 复合算数运算

符号作用说明
=赋值int a = 10 将10赋值给变量啊
+=加后赋值a+=b;将a+b的值给a
-=减后赋值a-=b;将a-b的值给a
*=乘后赋值a*=b;将a*b的值给a
/=除后赋值a/=b;将a÷b的商给a
%=取余后赋值a%=b;将a÷b的余数给a

2.1.3 类型转换

取值范围由小到大为:
byte < short < int < long < float < double

隐式转换:

  • (自动类型提升)取值范围小的转成取值范围大的

  • byte short char 三种类型的数据在运算的时候,会直接先提升为int然后在运算

    int i =10;
    long n =100L;
    double d = 20.0;
     double result = i+n+d;//i+n自动转成long类型,然后long类型与d运算转成double类型
    ===========================================
      byte b = 10;
    	short s = 20;
    	long n = 100L;
    // b和S先自动转成int,然后运算结果与long运算得long类型
    	long result = b+s+n;
    
    

强制转换:

  • 取值范围大的转成取值范围小的;

    public class demo3 {
        public static void main(String[] args) {
            byte b1 = 10;
            byte b2 = 20;
            //现在我们要强转的是谁?
            //b1 + b2计算之后的结果。
            // (byte)b1 + b2 强转的是b1,并不是最终的结果
            byte result = (byte)(b1 + b2);
            System.out.println(result);//30
        }
    }
    

2.1.4 “+”的三种情况

数字相加

  • 数字进行运算时,数据类型不一样不能运算,需要转成一样的 才能运算。

字符串相加

  • 当“+”操作中出现字符串时,此时+ 是字符串连接符,而不是运算符

    "123"+123    //"123123"
     1+2+"你好"   // "3你好"
    

2.2 自增自减运算符

符号作用说明
++变量值加1
变量值减1

注意事项

public class Test05 {
    public static void main(String[] args) {
       int a = 10;
       int b = a++; //先用后加
        System.out.println(a);// 11
        System.out.println(b);//  10
    }

}


====================================================
  public class Test05 {
    public static void main(String[] args) {
       int a = 10;
       int b = ++a; // 先加后用
        System.out.println(a);// 11
        System.out.println(b);//  11
    }

}
public class Test05 {
    public static void main(String[] args) {
        int x = 10;
        //后++:先用后加
        //先把x变量中的值拿出来用,赋值给y,然后再进行自增。
        //赋值给y的值是自增前的。
        int y = x++;// x = 11  y = 10
        //先++:先加后用
        //先把x进行自增,然后把自增后的结果赋值给左边的变量
        //先把x自增,变成12,然后再把自增之后的12赋值给z
        int z = ++x;//x = 12 z = 12
        System.out.println("x:" + x);//12
        System.out.println("y:" + y);//10
        System.out.println("z:" + z);//12
    }

}

2.3 赋值运算符

符号作用说明
=赋值int a = 10 将10赋值给变量啊
+=加后赋值a+=b;将a+b的值给a
-=减后赋值a-=b;将a-b的值给a
*=乘后赋值a*=b;将a*b的值给a
/=除后赋值a/=b;将a÷b的商给a
%=取余后赋值a%=b;将a÷b的余数给a

注:赋值运算符隐含了强制类型转换

2.4 关系运算符

  • 关系运算符也称比较运算符

  • 关系运算符的结果都是boolean类型,要么是true 要么是 false

运算符含义范例结果
==等于5==6false
!=不等于5!=6true
>大于5>6false
<小于5<6true
>=大于等于5>=6false
<=小于等于5<=6true

2.5 逻辑运算符

符号作用说明
&逻辑与(且)并且,两边都为真,结果才是真两边都要满足
|逻辑或或者,两边都为假,结果才为假两边满足一个
^逻辑异或相同为false, 不同为true
!逻辑非取反
        // & 并且
        // 两边都为真,结果才是真
        System.out.println(true & true);//true
        System.out.println(true & false);//false
        System.out.println(false & false);//false
        System.out.println(false & true);//false
        
        //  |  或者
        //两边都是假,结果才为假
        System.out.println(false |false);//false
        System.out.println(false | true);// true
        System.out.println(true | false);//true
        System.out.println(true | true);//ture

        // ^ 异或
        // 相同为false ,不同为true
        System.out.println(false ^ false);//false
        System.out.println(true ^ true);//false
        System.out.println(true ^ false);//true
        System.out.println(false ^ true);//true

        // ! 逻辑非 ,取反
        System.out.println(!true);//false
        System.out.println(!false);//true

2.6短路逻辑运算符

符号作用说明
&&短路与结果和&相同,但是有短路效果
||短路或结果和 | 相同,但是有短路效果
  • & |无论左边true 还是false ,右边都执行
  • && ||如果左边能确定整个表达式的结果,右边不执行
  • &&左边为false,右边不管真假,整个表达式的结果一定是false,即右边不会执行
  • ||左边为true 右边不管真假,整个表达式的结果一定是true,即右边不会执行
        // && 短路与, 运行结果跟单个&一样
        //两边结果都为真,结果才为真
        System.out.println(true && true);//true
        System.out.println(false && true);//false
        System.out.println(true && false);//false
        System.out.println(false && false);//false

        // || 短路或 ,运行结果和单个 | 一样
        // 两边结果都为假 结果才是假
        System.out.println(false||false);//false
        System.out.println(false|| true);// true
        System.out.println(true||false);//true
        System.out.println(true||true);//ture

        // 短路逻辑运算符具有短路效果,
     //可以理解为:当左边的表达式能最终确定结果,右边的表达式就不在执行
        int a = 10;
        int b = 10;
        boolean res = ++a < 5 && ++b<5;
        System.out.println(res);//false
        System.out.println(a);//11
        System.out.println(b);//10;如果&&改为& ,b输出为11



2.7三元运算符

格式:关系表达式?表达式1:表达式2;

  • 首先计算关系表达式的值,
  • 如果值为true,表达式1的值就是运算结果
  • 如果值为false,表达式2 的值就是运算结果
 // 输出两个数的最大值
        int number = 10;
        int number2 = 20;
        int max = number>number2?number:number2;
        System.out.println(max);
-----------------------------------------------------------
       // 输出三个数的最大值
        int a = 165;
        int b = 212;
        int c = 150;
        // temp为临时变量  ctrl+alt+l:自动格式代码
        int temp = a > b ? a : b;
        int res = temp > c ? temp : c;
        System.out.println(res);

2.8运算的优先级

()小括号优先所有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蔚一

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值