java基础_02_运算符

7.运算符

 

 

 

public class helloworld {
    public static void main(String[] args) {
        //取余  模运算 %
        int a = 22;
        int b = 10;

        System.out.println(a%b); //输出结果2
} 

 

 

 

public class helloworld {
    public static void main(String[] args) {
        //关系运算符(< > = !=)
              //输出结果一定是布尔值
        int a = 10;
        int b = 20;

        System.out.println(a>b); //输出结果 false
        System.out.println(a<b); //输出结果 true
        System.out.println(a==b); //输出结果 false
        System.out.println(a!=b); //输出结果 true

    }
}

 

 

 

public  class helloworld {
    public static void main(String[] args) {

        //operator 运算符

           //二元运算符(+-*/)
                                //Ps ctrl+D 复制当前行到下一行
//场景一 当除出来如果有小数,一定要数据数据类型范围,需要转换数据类型
        int a = 10;
        int b = 20;
        int c = 30;
        int d = 40;

        System.out.println(a+b); //输出结果 30
        System.out.println(a-b); //输出结果 -10
        System.out.println(a*b); //输出结果 200
        System.out.println(a/b); //输出结果 0 预期10/20=0.5
        System.out.println(a/(double)b); //输出结果 0.5 PS:当除出来如果有小数,一定要数据数据类型范围,需要转换数据类型

//场景二,不同数据类型之间的运算
        //多个操作类型中有一个是long,结果为long类型,如果没有long的时候,结果为int类型(无论有没有int操作),如果有double,结果一定是double
        long a1 = 123123123123L;
        int  b2 = 123;
        short c3= 10;
        byte  d4 = 8;
        System.out.println(a1+b2+c3+d4); //运算出来=123123123264,long类型
        System.out.println(b2+c3+d4); //结果=141 int类型,也没问题
        System.out.println(c3+d4); //结果=18,int类型

    }
}

 

 

public class helloworld {
    public static void main(String[] args) {
        //模运算  一元运算符
        // ++自增  --自减
        int a = 3;
        int b = a++; //执行完这行代码后,先给b赋值,再自增
                     //a=a+1
                     //System.out.println(a);此时的a已经等于4,但是由于a++是先赋值再自增,所以b还是等于3
        int c = ++a; //执行完这行代码后,先自增,再给c赋值 上面的a=4,现在自增1,a=5,所以c=5

        System.out.println(a); //输出结果 5
        System.out.println(b); //输出结果 3
        System.out.println(c); //输出结果 5

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

 

 

public class helloworld {
    public static void main(String[] args) {
        //逻辑运算符
        // 与(and) 或(or) 非(取反)

        boolean a = true;
        boolean b = false;

        System.out.println("a && b: "+(a&&b));//逻辑与运算 两个变量都为真,结果才为真
                   //其中b为false,按上述规则,所以输出结果为false
        System.out.println("a || b:"+(a||b)); //逻辑或运算 两个变量有一个为真,结果才为true
                   //其中a为true,按上述规则,结果为true
        System.out.println("! (a && b):"+!(a&&b)); //逻辑非运算 如果是真,则变为假,如果是假,则变为真
                   //已知按照逻辑与运算 两个变量都为真,结果才为真,a与b,为false,取反即true

        //场景二,短路运算
        int c = 5;
        boolean d = (c<4)&&(c++<4);
        System.out.println(d); // (c<4)为false,按照与运算 两个变量都为真,结果才为真,所以为false
        System.out.println(c); //c经过c++自增1,=5+1=6,实际输出结果5.说明第一步为错后,就没有执行第二个条件
    }
}

 

public class helloworld {
    public static void main(String[] args) {
        //位运算 一般用于2进制的位运算 也是与或非运算

        /*
        A = 0011 1100
        B = 0000 1101
        A&B 与运算   //上下两位去比较,如果两个都为1,才为1,否则0
                    //运算结果 0000 1100

        A|B 或运算 //对应位都是0,结果为0,否则为1
                  //运算结果 0011 1101

        A^B 异或运算
                //如两个位相同这位0,否则为1
                //运算结果 0011 0001

        ~B 非运算
                //取反B
                //1111 0010
         -----------------------------------

//PS:面试题: 2*8怎么运算最快
                   //位运算效率极高,通过计算机底层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
        2进制,每移动一位,数字变大一倍


        * */

        System.out.println(2<<3); //2左移3位=16;输出结果:16
            }
}

 

 

public class helloworld {
    //三元运算符
          //1,条件运算符 ? :
          //2,扩展赋值运算符 += -= *= /=
    public static void main(String[] args) {

//场景一:扩展赋值,+= -=
        int a = 10;
        int b = 20;
        a+=b; //简写 a= a+b
        System.out.println(a);//输出结果 30

        int a1 = 30;
        int b1 = 20;
        a1-=b1; //简写 a= a1+b1
        System.out.println(a1);//输出结果 10



//场景二:字符串连接符 +
        //在+运算符两侧,只要出现了String类型,就会把所有数据转成String,再连接
        int a2 = 30;
        int b2 = 20;
        System.out.println(a2+b2);//输出结果30
        System.out.println(""+a2+b2);//输出结果3020,连起来了
        //PS面试题,上下两个""位置不同,结果有什么不同
        System.out.println(a2+b2+"");//输出结果 50
                                     //因为前面先执行了运算

    }
}

 

 

public class helloworld {
    public static void main(String[] args) {
        //三元运算符  条件运算符?
        //x ? y : z
        //如果x==true,则结果等于y,否则为z
       int score = 80;
       String type = score < 60?"不及格":"及格";
        System.out.println(type); //输出结果及格
        //非常重要,必须掌握

    }
}

 

posted @ 2024-04-12 11:11  xiaodi888  阅读(6)  评论(0编辑  收藏  举报