Day130-131

jimage-20210130142959365

image-20210130145857028

image-20210130153834201

image-20210130154825314

image-20210130171947830

运算符:

算术运算符 % 等于取余运算(称为模运算)

Java里的等于是两个等于号(==) 不等于的符号是!=

逻辑运算符:&&=与、||=或、!=非

image-20210130175806133

package Operator;

public class Demo01 {
    public static void main(String[] args) {
     //二元运算
     //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((double) a/b);
    }
}

package Operator;

public class Demo02 {
    public static void main(String[] args) {
        double a= 256319848L;
        int b= 225;
        byte c= 10;
        short d= 25;
        System.out.println(a+b+c+d);//Long类型
        System.out.println(b+c+d);//int类型
        System.out.println(c+d);//int类型
        System.out.println((double) c+d);
    }
}

package Operator;

public class Demo03 {
    public static void main(String[] args) {
        //关系运算符返回的结果  正确/错误  布尔值
        //关系运算符会和if一起大量使用
        int a=10;
        int b=20;
        int c=21;//c/a ...21/10=2……1     余1
        System.out.println(a>b);
        System.out.println(a<b);
        System.out.println(a==b);
        System.out.println(a!=b);
        //取余  模运算
        System.out.println(c%a);

    }
}

package Operator;

public class Demo04 {
    public static void main(String[] args) {
        //++ -- 自增  自减  一元运算符
        int a = 3;
        int b = a++;//执行完这行代码后,先给b赋值,再自增
        //a++  a=a+1
        System.out.println(a);
        int c = ++a;//执行完这行代码前,先自增。再给c赋值
        //++a  a= a+1
        System.out.println(a);

        System.out.println(b);

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



    }
}

package Operator;
//逻辑运算符
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)); //逻辑非运算   如果是真,则变为假,如果是假,则变为真
        */
        //System.out.println(a && b);  //逻辑与运算   两个和变量都为真,结果才为true

        //System.out.println(a || b);   //逻辑或运算    两个变量有一个为真,则结果为true

        //System.out.println(!(a && b)); //逻辑非运算   如果是真,则变为假,如果是假,则变为真

        //短路运算   当c<4时,输出已为false 因此后续结‘c++<4不会再被执行,证明的方法:如果被执行了,那么c的输出因为c++自增的原因,应为6
        //双与运行原则:当左侧为false时右侧不参与运算!所以c<4为false,右侧依旧为5
        //int c = 5;
        //boolean d=(c<4)&&(c++<4);
        //System.out.println(d);
        //System.out.println(c);
        //int c = 5;
        //boolean d=(c<4)&&(++c<4);
        //System.out.println(d);
        //System.out.println(c);
        int c = 5;
        boolean d=(c<4)||(++c<4);
        System.out.println(d);
        System.out.println(c);
    }
}
package Operator;

public class Demo06 {
    public static void main(String[] args) {
        /*
        A=0011 1100
        B=0000 1101
        ---------------------------------------------------
        带入:0=false(假) 1=true(真)
        A&B=0000 1100 (与运算,两个之中有一个为0,则输出0,两个都为1,则输出1)
        A|B=0011 1101 (或运算,两个之中有一个为1,则输出1,反之为0)
        A^B=0011 0001 (异或,两个相同为0,否则为1)
        ~B=1111 0010  (对B取反,0输出1,1输出0)
        2×8=16  2*2*2*2
        位运算效率高,原因是直接和底层打交道
        <<   *2   左移是乘
        >>   /2   右移是除
        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
        0001 0000     16

        */
        System.out.println(2<<3);
    }
}

package Operator;

public class Demo07 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        a += b;  //a=a+b
        a -= b;
        System.out.println(a);

        //字符串连接符  +  在加号运算符两侧只要有任意一侧出现String类型,就会把其他操作数或操作类型转化为String并进行连接
        System.out.println(a + b);
        System.out.println("" + a + b);
        System.out.println( a + b+"" );//这里输出的结果和上面是不一致的,原因是a+b已经先进行了运算等于30
        System.out.println( (a + b)+"" );
        System.out.println( ""+(a + b) );

    }
}
package Operator;
//三元运算符
public class Demo08 {
    public static void main(String[] args) {
      //x? y: z
      //如果x=true,则结果为y,否则结果为z
        int score=80;
       String type= score<60 ? "不及格":"及格";//必须掌握
        System.out.println(type);
    }
}

package Operator;

public class Demo09 {
    public static void main(String[] args) {
        int a=10;
        int b=20;
        int c=30;
        System.out.println(a+b*c);//Java运算符优先级,括号最高,其次一元运算符(+-×/)、
    }
}

posted @ 2021-01-31 00:48  CalculusAkuma  阅读(84)  评论(0)    收藏  举报