运算符

运算符

Java语言支持如下运算符:

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

    System.out.println(a+b);
    System.out.println(a-b);
    System.out.println(a*b);
    System.out.println(a/(double)b);//当有小数位的情况下需要进行强制转换
}

}
public class Demo02 {
    public static void main(String[] args){
        long a=123123123123L;
        int b=123 ;
        short c=10;
        byte d=8;
        System.out.println(a+b+c+d);//long 如果表达式中含有long类型,那么整个结果也是long类型
        //double 如果表达式中含有double类型,那么整个结果也是double类型
        System.out.println(a+c+d);//
        System.out.println(c+d);
    }
}
public class Demo03 {
     public static void main(String[] args){
         int a=10;
         int b=20;
         int c=31;

         System.out.println(a>b);
         System.out.println(a<b);
         System.out.println(a==b);
         System.out.println(a!=b);
         System.out.println(c%a);//取余,模运算
    }

}
public class Demo04 {
 public static void main(String[] args){
  //++自增  -- 自减 一元运算符
  int a=3;
  int b=a++;//执行完这行代码后,先给b赋值,再自增
  //a++ a=a+1;
  System.out.println(a);
  //a++ a=a+1;
  int c=++a;//执行这行代码前,先自增,再给b赋值
  System.out.println(a);
  System.out.println(b);
  System.out.println(c);
 }
  • 赋值运算符:=
  • 关系运算符:>,<,>=,<=,==,!=instanceof
  • 逻辑运算符:&&,||,!
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),结果才为真(true)
    System.out.println("a||b:"+(a||b));//逻辑或运算:两个变量有一个真(true),结果为真(true)
    System.out.println("a&&b:"+!(a&&b));//如果是真,则变为假,如果是假则变为真
    
    //短路运算:逻辑与运算中若前一个变量为假,则将直接判定为假,
    int c=5;
    boolean d=(c<4)&&(c++<4);//c<4为false,则后面不执行,c的依然是5.
    System.out.println(d);
    System.out.println(c);
}
}
  • 位运算符:&,|,^,~,>>,<<,>>>
public class Demo06 {
public static void main(String[] args){
    /*
    A=0011 1100
    B=0000 1101

    A&B=0000 1100   (两个为1,则为1)
    A/B=0011 1100   (两个为0,则为0)
    A^B=0011 0001   (两个相同,则为0)
    ~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
     */
}
}
  • 条件运算符?:(三元运算符)
public class Demo08 {
    public static void main(String[] args){
        //x?y:z 如果x=true,则结果为y,否则结果为z;

        int score=50;
        String type=score<60?"不及格":"及格";
        System.out.println(type);
        
    }
}
  • 扩展赋值运算符:+=,-=,*=,/=
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);
         System.out.println(""+a+b);
         System.out.println(a+b+"");
         //字符串连接符 + 当一方(前面)出现了String类型,就会把其它类型都转换成String类型进行连接
         // 出现在后面则前面类型会执行运算操作
     }
}

补充:幂运算

double pow=Math.pow(3,3);//即3^3 3*3*3=27
System.out.println(pow);

posted @ 2021-10-13 22:25  趁好天时  阅读(55)  评论(0)    收藏  举报