• 运算符号


    运算符号

    算术运算符:+,-,*,/,%(余数),++(自增),--(自减)

    赋值运算符:=

    关系运算符:>,<,>=,<=,==,!= instanceof

    逻辑运算符:&&,||,!(与,或,非)

    位运算符:&,|,^,~,>>,<<,>>>

    条件运算符:?,:

    扩转赋值运算符:+=,-=,*=,/=

     

    加减乘除

    操作时需要注意运算结果是否会有浮点数

    计算中,如果有高级的数据类型参与,那计算出来的结果类型,一定是最高的那个数据类型,默认为int类型

    public class Dem1 {
       public static void main(String[] args) {
           //二元运算符
           int a = 10;
           byte b = 20;
           int c = 25;
           long d = 25;//long类型是他们中最高的类型,所有有long类型参与的计算,结果都为long,否则就默认int类型

           System.out.println(a+b);//结果为 30
           System.out.println(a-c);//结果为-15
           System.out.println(d*b);//有d参与,为long类型,结果为500
           System.out.println(a/(double)b);//结果为小数,所以要把int类型强转double。结果为0.5
           System.out.println(c%a)//c除以a的余数是5,所以结果为5
      }
    }

    关系运算

    在关系运算符中,大于,小于,等于和不等于是用布尔值的false和true来输出结果。

    public class Dem3 {
       public static void main(String[] args) {
           //关系运算符的返回结果: 正确,错误 (布尔值)
           int a=10;
           int b=20;
           int c=21;

           System.out.println(a>b);//大于   false
           System.out.println(a<b);//小于     true
           System.out.println(a==b);//是否相等   false
           System.out.println(a!=b);//是否不相等   true
      }
    }

    自增,自减

    ++,--,被叫做自增,自减。以自增为例,一个自增相当于加1,当一个变量a,在++a和a++两种表达时,算法的路径会不一样。++a是先计算,再赋值。a++是先赋值,再计算。在一个方法中,++会从上到下积累,在输出句之前出现多少次++,最后的a就会加了多少个1。自减同理

    public class Dem4 {
       public static void main(String[] args) {
           //++ -- 自增,自减 一元运算符
           int a = 3;//给a赋初始值
           int b = a++;//先把a的值赋给b后a再+1
           System.out.println(a);//输出a等于4
           int c = ++a;//先+1后再给c赋值,就是4+1,再赋值给c。
           //此时c的值是上面a++得到的值4,再以4的值以++a计算后得到5
           System.out.println(a++);//得到值为5
           System.out.println(a);//得到值为6,
           System.out.println(b);//得到值为3
           System.out.println(c);//得到值为5
           //幂运算的写法
           double pow=Math.pow(3,2);
           System.out.println(pow);//得出结果9.0
      }
    }

    逻辑运算

    && || !称为与,或,非。以布尔值进行运算。 与 是代表A与B,或 是代表A或者B,非代表取反,正为负,负为正。

    与在计算时,需要A与B都为真,结果才为真。如在第一个变量就检测出为假,则不作后面的运算,直接为假

    或在计算时,A或者B有一个为真,则结果为真。如在第一个变量检测出为真,则不作后面的运算,直接为真

    非在计算时,如计算结果为真,则输出为假。结果为假,则输出为真。

    短路运算

    求证 “与”“或”在运算时,检测到第一个变量为假,或者真时,就不会再对后面的变量进行运算

    public class Dem5 {
       public static void main(String[] args) {
           //逻辑与运算   与 或 非
           boolean a = true;
           boolean b =false;

           System.out.println("a && b:"+(a&&b));//与:两个变量都为真,结果才为true
           System.out.println("a || b:"+(a||b));//或:其中一个变量为真,结果就为true
           System.out.println("!(a&&b):"+!(a&&b));//如结果为真,则变为假。为假则变为真

           //短路运算:
           int c = 5;
           boolean d =(c<4)&&(c++<4);
           //运算:c小于4为错误,在&&之前就被系统检测到false,所以不执行后面的c++变量
           System.out.println(d);//结果为false
           System.out.println(c);//结果为5 则证明在&&之前就短路了
      }
    }

    位运算

    & 与 | 或 ^亦或 ~取反 <<左移 >>右移 用于二进制逻辑运算

    A = 0011 0110

    B = 1010 0100

    A&B =010 0100(两个都为1,结果才为1)

    A|B = 1011 0110(有一个为1,结果就为1)

    A^B = 1001 0010(相同则为0,不同则为1)

    ~B = 0101 1011(和原本的数字相反)

    左移和右移<< >>

    0000 0000 0

    0000 0001 1

    0000 0010 2

    0000 0011 3

    0000 0100 4

    0000 0101 5

    0000 0110 6

    0000 0111 7

    0000 1000 8

    0000 1001 9

    .......

    0001 0000 16

    由此可以看出,左移<<相当于*2,右移>>相当于/2

    public class Dem6 {
       public static void main(String[] args) {
           System.out.println(2<<3);//输出结果为16
           System.out.println(16>>3);//输出结果为2
      }
    }

    扩展赋值运算符

    +=,-=,*=,/= +=是求和,如 a+=b,就是代表a=a+b。但求出的数值会累积叠加,这里和自增自减相同,在一个方法里面,输出语句之上的变量都会叠加。另外三个运算符也是同理。

    public class Dem7 {
       public static void main(String[] args) {
           int a = 10;//给a赋初始值
           int b = 20;//给B赋初始值
           a+=b;
           System.out.println(a);//结果为30 a的10+b的20
           b+=a;
           System.out.println(b);//结果为50   b的20+a的30
           a*=b;
           System.out.println(a);//结果为1500 a的30*b的50
            System.out.println(""+a+b);//输出结果为150050
    //在该运算符两侧,只要有前面出现了String类型,就会把其它类型都转换为String类型再进行连接,所以得出结果为1020
      }
    }

    三元运算符

    ? : 为三元运算符

    举例 a ? b : c

    如果a为真,结果就为b,如果为假,则结果为c

    package operator;
    //三元运算符
    public class Dem8 {
       public static void main(String[] args) {
           int score = 59;
           String t = score<60?"不及格":"及格";
           System.out.println(t);//score<60 为真,结果为"不及格"
      }
    }

     

  • 相关阅读:
    扑克牌顺子
    数组转 二叉树 ,并且输出二叉树的右视图
    数组中逆序对(归并排序思想)
    链表数字加和
    回文数字
    数组中 只出现一次的数
    判断是否有从根节点到叶子节点的节点值之和等于 sum
    双指针求 3个数和 为0的 数
    vue项目将css,js全部打包到html文件配置
    webpack4配置优化
  • 原文地址:https://www.cnblogs.com/jinweichaoyouqu/p/13702822.html
Copyright © 2020-2023  润新知