Java4基础

运算符

Java语言支持的运算符: 优先级()

  • 算术运算符:+,-,*,/,%,++,--

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

       System.out.println(a+b+c+d);    //Long,若运算中有Long类型,则结果为Long类型
       System.out.println(b+c+d);      //Int,若运算中没有Long类型,则结果为Int类型
       System.out.println(c+d);        //Int
       System.out.println(c+d+e);      //Double,若运算中有Double类型,则结果为Double类型
  }
}

拓展:

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

       int b = a++;    //执行完这行代码后,先给b赋值,再自增
       //a = a+1;
       System.out.println(a);  //4
       //a++   a = a + 1;
       int c = ++a;    //执行完这行代码前,先自增,再给c赋值

       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);
       double pow2 = Math.pow(3,2);

       System.out.println(pow);    //8.0   2*2*2
       System.out.println(pow2);   //9.0   3*3
  }
}

 

  • 赋值运算符:=

  • 关系运算符:>,<,>=,<=,==,!=,instanceof

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

       int a = 10; //=即为赋值,赋于a为10
       int b = 20;
       int c = 21;

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

       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 Demo05 {
   public static void main(String[] args) {
       // 与(and)   或(or)   非(取反)
       boolean a = true;
       boolean b = false;

       System.out.println("a && b = "+(a&&b));        //false 逻辑与运算:两个变量都为真,则结果为true,否则为false
       System.out.println("a || b = "+(a||b));        //true   逻辑或运算:两个变量有一个为真,则结果才为true
       System.out.println("!(a && b) = "+!(a&&b));    //true   逻辑非运算:如果非运算前是真,则变为假,如果是假,则变为真

       //短路运算
       int c = 5;
       boolean d = (c<4)&&(c++<4); //逻辑与运算:当第一个条件(c<4)为假时,直接得出结果false,第二个条件不执行
       System.out.println(d);      //false
       System.out.println(c);      //5

       boolean e = (c>5)||(++c>5); //逻辑或运算:两个条件同时执行
       boolean f = (c>5)||(c++>5);
       System.out.println(e);      //true
       System.out.println(f);      //false
  }
}

 

  • 位运算符:&,|,^,~,>>,<<,>>>(了解即可)

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     取反,实际1则为0,实际0则为1

       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
       System.out.println(128>>2);     //32
  }
}

 

  • 条件运算符:?:

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

       int score = 70;
       String type = score < 60 ?"不及格" :"及格";  //必须掌握
       String type2 = score < 80 ?"不及格" :"及格";
       System.out.println(type);   //及格
       System.out.println(type2);  //不及格
  }
}

 

 

  • 扩展赋值运算符:+=,-=,*=,/=

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

       a += b;     //a = a + b
       System.out.println(a);  //30
       a -= b;     //a = a - b
       System.out.println(a);  //10

       //字符串连接符   +,只要有String类型,则“+”为连接符作用
       System.out.println("_"+a+b);    //_1020,若String类型在最前方,则后续+都为连接符
       System.out.println(a+b+"_");    //30_
  }
}

 

posted on 2021-12-03 10:05  海丿鸢  阅读(169)  评论(0)    收藏  举报

导航