运算符

运算符

  • 优先级 ()

  • 算术运算符:+、-、*、/、%(取余数如2.....1取1)、++(自增)、--(自减)

  • 赋值运算符:=

  • 关系运算符:>、<、>=、<=、==、!=(不等于)、instanceof

  • 逻辑运算符:&&(与)、||(或)、!(非,不是..就是)

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

  • 条件运算符 ?:

  • 扩张赋值运算符:+=、-=、*=、/=

package operator;

public class Deom01 {
   public static void main(String[] args) {
       // 二元运算符
       //ctrl + D :复制当前行到下一行
       int a = 10;
       int b = 20;
       int c = 25;
       int d = 30;

       System.out.println(a+b);
       System.out.println(a-b);
       System.out.println(a*b);
       System.out.println((double)a/b);

       long A = 123456789L;
       int B = 123;
       short C = 12;
       byte D = 1;

       System.out.println(A+B+C+D);//long
       System.out.println(B+C+D);//int
       System.out.println(C+D);//int
       //有long结果都是long类型,有double都是double类型


       //一元运算符   ++ 自增   -- 自减
       int a1 = 3;
       int b1 = a1++;
       //执行完代码先给b1赋值,再自增(就是给a1加了,b1自己不加)
       int c1 = ++a1;
       //先自增再给c1赋值(给a1自己加了然后把数值给c1)

       System.out.println(a1);
       System.out.println(b1);
       System.out.println(c1);

       //幂运算 很多运算,会使用一些工具类来操作
       double E = Math.pow(5,6);//5的6次方
       System.out.println(E);

  }

}
package operator;

//逻辑运算符
public class Demo02 {
   public static void main(String[] args) {
       //与(&&) 或(||) 取反(!)
       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));//如果为true,则变为flase,如果为flase则为true

       //短路运算
       int c = 5;
       boolean d = (c<4)&&(c++<4);
       System.out.println(d);
       System.out.println(c);

       //位运算
       /*
       A = 0011 1100
       B = 0000 1101
    ---------------------
       A&B = 0000 1100
       A|B = 0011 1101
       A^B = 0011 0001
       ~B = 1111 0010
       ~A = 1100 0011

       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);//2右移三位(0000 0010)-> (0001 0000)
                       //(2*3个2=2*2*2*2=16)

       //拓展运算符 += -=
       int e = 10;
       int f = 20;

       e+=f;//e = e+f
       e-=f;//e = e-f

       System.out.println(e);

       //字符串连接符   + , 前面有string类型会把其他操作数转化为string进行连接
       System.out.println(e+f);//=30
       System.out.println(""+e+f);//=1020
       System.out.println(e+f+"");//=30

       //三元运算符 ? :
       //x ? y : z
       //如果x==true,则结果为y,否则为z

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

 

posted @   sususyq-  阅读(308)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示