0
点赞
收藏
分享

微信扫一扫

Java基础语法-基本运算符、自增自减

知识回顾-基本运算符

Java语言支持如下运算符: 运算符 中的括号"()"为 优先级,可多次使用。

算数运算符:+,-,*,/,%,++,–
赋值运算符:=
关系运算符:>,<,>=,<=,==(Java的等于是两个等号),!=(不等于) instanceof
逻辑运算符:&&,||,! (与或非)

(以下三个了解就可以)
位运算符:&,|,^,~,>>,<<,>>>
条件运算符:?、:
扩展赋值运算符: +=,-=,*=,/=

算数运算:

public class Demo01 {
    public static void main(String[] args) {
        //二元运算符
        //idea软件快捷键ctrl+D,复制当前行到下一行
        int a = 10;
        int b = 20;
        int c = 25;
        int d = 25;

        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/(double)b);//此处需要强转一下类型,否则会输出为0

    }
}

输出结果:
在这里插入图片描述

赋值运算:

public class Demo02 {
    public static void main(String[] args) {
        long a = 123123123123L;
        int b = 123;
        short c = 10;
        byte d = 8;

        System.out.println(a+b+c+d);//Long 如果有Long就是long
        System.out.println(b+c+d);//Int
        System.out.println(c+d);//Int  任意非long整数所运算,结果总是int
    }
}

输出结果:
在这里插入图片描述

关系运算:

public class Demo03 {
    public static void main(String[] args) {
        //关系运算符返回的结果:正确,错误 是用布尔值表示
        //if

        int a = 10;
        int b = 20;
        int c = 21;

        //取余,模运算
        System.out.println(c%a);//c/a  21/10=2...1,取余,模运算

        System.out.println(a>b);
        System.out.println(a<b);
        System.out.println(a==b);
        System.out.println(a!=b);
    }
}

输出结果:
在这里插入图片描述

算数运算:自增,自减

public class Demo04 {
    public static void main(String[] args) {
        //++自增,  --自减  一元运算符
        int a = 3;

        int b = a++;//执行完这行代码后,先给b赋值(此时b=3),再自增(a++)
        //a++    a = a + 1;
        System.out.println(a);//a=a+1=4
        /*
        b = a++ 是执行完这行代码后,先给b赋值,再自增
        先给b赋值意思是 可以理解为b=原始a,所以b=3
        再自增意思是 执行一次a=a+1,
        所以此时System.out.println(a);输出结果是4
        */

        System.out.println("===============================");
        //++a   a=a+1;
        int c = ++a;//执行完这样代码前,先自增(++a),再给c赋值(此时c=5)
        /*
        c = ++a 执行完这样代码前,先自增,再给c赋值
        先自增意思是 执行a=a+1,因已经执行过一次a++(即a=a+1),所以此时a=(a+1)+1=5
        再给c赋值,此时的a=5,所以c=5
         */

        System.out.println(a);//两轮自增a++  ++a ,此时a=5
        System.out.println(b);
        System.out.println(c);
        System.out.println("===============================");
        //自减同理
        //test
        int d = 5;
        int e = d--;//e=5,此时d=d-1=4
        int f = --d;//d=d-1-1=3,f=3

        System.out.println(d);//两轮自减,此时d=3
        System.out.println(e);//5
        System.out.println(f);//3

        System.out.println("===============================");
        //幂运算, 2*2*2=8 很多运算,我们会使用工具类来操作
        double pow = Math.pow(2, 3);
        System.out.println(pow);


    }
}

输出结果:
在这里插入图片描述

逻辑运算:

public class Demo05 {
    public static void main(String[] args) {
        //与(and &&)  或(or ||)  非(取反 !)
        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));//如果是真,则变为false,如果是假的则变为true

        //短路运算
        int c = 5;
        boolean d = (c<4)&&(c++<4);//c<4已经是false,不会再执行(c++<4),所以输出d直接是fase
        System.out.println(d);
        System.out.println(c);//c<4已经是false,不会再执行(c++<4),所以c还是5
    }
}

输出结果:
在这里插入图片描述

位运算:

public class Demo06 {
    public static void main(String[] args) {
        /*
        A = 0011 1100
        B = 0000 1101
        ----------------------
        A&B = 0000 1100 与 都是1才为1,否则为0
        A|B = 0011 1101 或 都是0就为0,如果有1就为1
        A^B = 0011 0001 异或:相同为0,相异为1
        ~B = 1111 0010  取反

        2*8 = 16  2*2*2*2 后者适合计算机
        后者适合计算机,效率高
        <<左移就是  *2
        >>右移就是  /2

        0000 0000  0
        0000 0001  1
        0000 0010  2
        0000 0100  4
        0000 1000  8
        0001 0000  16

         */

        //示例
        System.out.println(2<<3);//二进制下移位3次  2*2*2*2
        System.out.println(4<<2);//4*2*2
    }
}

输出结果:
在这里插入图片描述

条件运算:

public class Demo07 {
    public static void main(String[] args) {
        int a =10;
        int b =20;

        a+=b;//a= a+b
        a-=b;//a= a-b

        System.out.println(a);
        /*
        此时是经过了a+(a=a+b=30)
        又 a-,(a=a-b=30-20)
        故a=10。
         */

        //字符串连接符 + ,String
        System.out.println(""+a+b);//""是空的字符串在前面,此时的+是字符串连接符,后面的a+b转换成了String类型,拼接输出结果是1020
        System.out.println(a+b+"");//""字符串在后面,先算数运算a+b,再与""进行字符链接,所以结果为30
    }
}

输出结果:
在这里插入图片描述

扩展赋值运算:

package com.kuang.operator;

//三元运算符号
public class Demo08 {
    public static void main(String[] args) {
        //x ? y : z
        //如果x==true,则结果为y,否则结果为z

        int score = 50;
        String type = score <60 ?"不及格":"及格";//必须掌握,可以精简代码
        // if
        System.out.println(type);
    }
}

输出结果:
在这里插入图片描述

举报

相关推荐

0 条评论