day03 Java基础——各种运算符

发布时间 2023-11-14 15:36:27作者: 三口一头居
一、自增自减运算符、Math类
public class Demo04 {
    public static void main(String[] args) {
        //++  --     自增,自减 一元运算符
        int a=3;
        int b=a++;
        int c=++a;
        System.out.println(a);
        System.out.println(a);
        System.out.println(b);
        System.out.println(b);
        System.out.println(c);
        System.out.println(c);

        //幂运算2^3   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));//如果是真,则变为真,如果是假则变为真

        //短路运算
        int c=5;
        boolean d=(c<4)&&(c++<4);//假设前面一个条件已经是假了,那&&后面的条件根本就不会运行
        System.out.println(d);//false
        System.out.println(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 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 0011//代表数字3 0000 0100//代表数字4 0000 1000//代表数字8 0001 0000//代表数字16 */ System.out.println(2<<3);//16,意思就是把二进制中的1向左移动三位 } }

三、条件运算符?: 与 扩展赋值运算符:+=,-=,*=,/=

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);//30
        //System.out.println(b);//

        //字符串连接符  +  ,在+号两侧只要出现String类型,他就会把另外的操作数都转成string类型的来运算
        System.out.println(a+b);//30
        System.out.println(""+a+b);//1020,把a和b连接起来了,并没有做加法运算
        System.out.println(a+b+"");//30  这里的30其实已经是string类型了,但是运算在遇到""之前a+b就已经运算好了
    }
}

四、三元运算符

//三元运算符
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);

    }
}