Java学习day10

public class Demo07 {
    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));//如果结果为真则变为假,反之为真
        System.out.println("==============================");

        //短路运算:与运算中,若第一个数就已经是假了,则不会再运行后面的,之间输出结果为false
        int c = 5;
        boolean d = (c<4)&&(c++<4);

        System.out.println(d);  //结果为false
        System.out.println(c);  //结果为5,即只输出了(c<4)已经为false了
        System.out.println("==============================");

    //位运算符:&(与)、|(或)、^(非)、~(取反)
        /*
        A = 0011 1100
        B = 0000 1101

        A & B =0000 1100  (对位比较:相同位置的数都是1则为1,其他都是0)
        A | B =0011 1101  (对位比较:相同位置的数都是0则为0,其他都是1)
        A ^ B =0011 0001  (对位比较:相同位置的数都相同则为0,即都是0或都是1,不同则为1)
        ~ B =1111 0010  (对位比较:相同位置的数全部按位取反,即1变为0,0变为1)
         */

        //<<:左移     >>:右移
        /*例:
        2*8=16  即2*2*2*2

        0000 0000       0
        0000 0001       1
        0000 0010       2
        0000 0100       4
        0000 1000       8
        0001 0000       16
        从2到16,向左移动了3个位
        由此可知<<就是*2;>>就是/2
         */
        System.out.println(2<<3);   //结果为16,原理即是2*2*2*2
        System.out.println("==============================");

    //扩展赋值运算符:+=、-=、*=、/=
        int m = 10;
        int n = 20;
        m += n;     //即m=m+n;其余的同理

        System.out.println(m);     //结果为30

        //字符串连接符:+
        System.out.println(m+n);    //结果为30
        System.out.println(""+m+n);     //结果为1020
        //"":这里是Strin类型,它会把后面的也转化为String类型然后拼接起来,这里m=10,n=20,所以是1020
        System.out.println(m+n+"");     //结果为30
        //因为m+n在String类型前面,所以它还是会先把m+n运算
        System.out.println("==============================");

    //三元运算符? :
        //X ? Y : Z   即如果X==true,则结果为Y,否则为Z
        int score = 80;         //score:成绩
        String type = score < 60 ? "不及格":"及格";

        System.out.println(type);   //结果为及格
    }
}
posted @ 2021-04-06 19:48  扶苏公子不服输  阅读(37)  评论(0)    收藏  举报