Java之运算符

运算符

这里写图片描述

第一优先级[ ] . ( )

        int[] array = {1,2,3,4};      //[]声明一个数组
        array[0] = 2;                //[]属性获取数组下标里的东西
        System.out.println(array);
        int len = array.length;      //array. ()方法调用
        System.out.println(len);

第二优先级

! 非运算

boolean a = true;
system.out.println(!a);
//运行结果为 False

++(– –)

        //++  (后置++   前置++)
        int a2 = 10;
        a2++;
        System.out.println(a2);

        //后置++
        int a3 = a2++;         // tmp = a2----->a3 = tmp----->a2+1
        System.out.println(a3);

        //前置++
        int a4 = ++a2;         //a2+1---->a4      
        System.out.println(a4);

第三优先级

乘法 *

int a = 10;
int b = 10;
int c = a*b;
system.out.println(c);
//c 结果为10*10=100

除法 /

int a = 10;
int b = 10;
int c = a/b;
system.out.println(c);
//c 结果为10/10=1

取余 %

        System.out.println(10%3);
        System.out.println(-10%3);
        System.out.println(-10%-3);
        System.out.println(10%-3);

运行结果为:
这里写图片描述
这里写图片描述
加上数据类型后的骚操作:

float f1 = 5/2;
        float f2 = (float)5.0/2;
        float f3 = (float)5/2;
        float f4 = 5/(float)2;
        System.out.println(f1);
        System.out.println(f2);
        System.out.println(f3);
        System.out.println(f4);

运行结果为:
这里写图片描述

第四优先级

加法 +

int a = 10;
int b = 10;
int c = a+b;
system.out.println(c);
//c 结果为10+10=20

减法 -

int a = 10;
int b = 10;
int c = a+-;
system.out.println(c);
//c 结果为10-10=0

第五优先级

    >> 右移运算符
    11>>1    0000 0101     值为5    11/2^1     11/2      右移相当于除法
    11>>2    0000 0010     值为2    11/2^2     11/4
    11>>3    0000 0001     值为1    11/2^3     11/8

    << 左移运算符
    11<<1    0001 0110     值为22   11*2^1   左移相当于乘法
    11<<2    0010 1100     值为44   11*2^2
    11<<3    0101 1000     值为88   11*2^3
    11<<4    1011 0000  

    >>> 无符号右移:最高位补0                
    11<<<1   0000 1011--------->0000 0101       
    -11<<<1  1111 0100--------->0111 1010

第六优先级

小于(< )大于(>)小于等于(<=)大于等于(>=)

public class one {
    //void 当前方法的返回值
    //Max1 方法名称
    //(int a,int b) 形式参数
    //{方法体}
    public static int Max1(int a,int b){
        if(a>b){
            return a;
        }else{
            return b;
        }
    }
        public static void main(String[] args) {
            int a = 10;
            int b = 20;
            int e = Max1(a,b);
            System.out.println(e);
        }
    }

第七优先级

==(等于)
=(赋值)

第八、九、十优先级

    11    0000 1011       ~11   1111 0100
    13    0000 1101       ~13   1111 0010

    |  按位或
    11|13    0000 1011     
             0000 1101
             0000 1111

    &  按位与
    11&13    0000 1011     
             0000 1101
             0000 1001

    ^ 按位异或:不一样的去或,一样的为0
    11^13    0000 1011    
             0000 1101
             0000 0110

第十一、十二优先级

&&短路与
|| 短路或

    public static boolean fun1(int val) {
        System.out.println("val<1");
        return val < 1;
    }

    public static boolean fun2(int val) {
        System.out.println("val<2");
        return val < 2;
    }

    public static boolean fun3(int val) {
        System.out.println("val<3");
        return val < 3;
    }
public static void main(String[] args) {
        boolean b1 = fun1(0) && fun2(2) && fun3(1); //短路与 如果有false,后面直接不执行
        System.out.println(b1);
        boolean b2 = fun1(0) || fun2(2) || fun3(1); //短路或 如果有true,后面直接不执行
        System.out.println(b2);

第十三优先级

条件运算符(?:)

int a = 15;
int b = 20;
System.out.println(a>b?a:b);
//输出结果为20

这里写图片描述

第十四优先级

混合赋值运算符
+=

    int i =0;
    i+=1;
    System.out.println(i);
    //i = i + 1;结果输出为1

-=

    int i =4;
    i-=1;
    System.out.println(i);
    //i = i - 1;结果输出为3

*=、/= 用法和以上相同

附上闰年算法

    public static boolean LeapYear(int year){
        if((year/4==0) && (year/100==0) || (year/400==0))
            return true;
        else
            return false;
    }
    public static void main(String[] args) {
        boolean year = LeapYear(2008);
        System.out.println(year);
        }

猜你喜欢

转载自blog.csdn.net/qq_39475906/article/details/79850746