java基础逻辑运算

逻辑运算

本文章为个人笔记积累

课程来自b站遇见狂神说

运算符

  • 算术运算符:+ , - , * , / , %(模运算==取余数), ++ , --

  • 赋值运算符:=

  • 关系运算符:> , < , >= , <= , == , != ,instanceof (是一个比较方法,返回布尔值)

  • 逻辑运算符:& &, || ,!

  • 位运算符:& , | , ^ , ~ , >> , << , >>>

  • 条件运算符?:

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

自增,自减

//++ -- 自增 自减 一元运算符

例子:

int a = 3;

int b = a++; // b = a = 3 , a = a + 1 = 4;

int c = ++a; // c = a + 1 = 4 + 1 = 5;

 int a = 3;
 int b = a++;    //执行完这行代码后,先给b赋值,再自增
 //a = a + 1;b=3,a=4
 System.out.println(a);  //4
 int c = ++a;    //执行完这行代码后,先自增,再给c赋值
 //a = a + 1;a=5,c=5
 System.out.println(c);  //5
 System.out.println("=======================");
 ​
 System.out.println(a);  //5
 System.out.println(b);  //3
 System.out.println(c);  //5
 System.out.println("=======================");
 ​
 //幂运算   2^10 = 1024
 double pow = Math.pow(2,10);    //Math为数学工具类,pow为幂运算方法
 System.out.println(pow);

逻辑与或非

逻辑与运算:两个变量都为真,结果才为true;

逻辑或运算:两个变量其中有一个为真,则结果才为true;

逻辑非运算:真为假,假为真

异或运算:两个相同为0,不同为1

 //与   或   非
 boolean a = true;
 boolean b = false;
 System.out.println("a && b = "+(a&&b));     //false,逻辑与运算:两个变量都为真,结果才为true;
 System.out.println("a || b = "+(a||b));     //true,逻辑或运算:两个变量其中有一个为真,则结果才为true;
 System.out.println("a && b = "+!(a&&b));    //true,逻辑非运算:真为假,假为真
 System.out.println("=====================");
 ​
 //短路运算
 int c = 5;
 boolean d = (c<4)&&(c++<4);
 System.out.println(d);      //false,c<4直接不成立,后面跳过
 System.out.println(c);      //5
 System.out.println("=====================");
 int x = 5;
 boolean y = (x>4)&&(x++<4);
 System.out.println(y);      //false,x>4成立,后面x++成立,但x++=6,所以输出为false
 System.out.println(x);      //6
 
  

位运算

位运算效率极高!

 //位运算
 /*
 A = 0011 1100
 B = 0000 1101
 --------------------
 A&B = 0000 1100
 A|B = 0011 1101
 A^B = 0011 0001           (异或:两个相同为0,不同为1)
  ~B = 1111 0010
 ​
  扩展:
  怎么快速计算 2*8 = 16       2*2*2*2
  二进制中:
  <<     左移  *2  乘2
  >>     右移  /2  除2
 ​
  0000 0000      0
  0000 0001      1       2^0
  0000 0010      2       2^1
  0000 0100      4       2^2
  0000 1000      8       2^3
  0001 0000      16      2^4
  0010 0000      32      2^5
  0100 0000      64      2^6
  1000 0000      128     2^7
 ​
  */
 System.out.println(2<<3);   //16    2^3
 System.out.println(2<<7);   //256   2^8
 
  

赋值运算符

     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
         System.out.println("=======================");
 ​
         //字符串连接符    +
         System.out.println(""+a+b);     //1020,""为String类型字符串,在前面会拼接
         System.out.println(a+b+"");     //30,字符串再后面依旧为进行运算

三元位运算

 // x ? y : z
         //如果x为真,则结果为y,否则为z
 ​
         int score1 = 50;
         int score2 = 80;
         String type1 = score1 <60 ?"不及格":"及格";
         String type2 = score2 <60 ?"不及格":"及格";
         //类似if,但比较精简
         System.out.println(type1);       //不及格
         System.out.println(type2);       //及格

你可能感兴趣的:(java,开发语言,后端)