运算符

运算符

java语言支持如下运算符

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

  • 赋值运算符 = (int i= 10)把10赋值给i

  • 关系运算符:> < >= <= ==(java里面的等于要用等等于代替) !=(不等于) instanceof

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

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

  • 条件运算符 ?:

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

public class Dome11 {
   public static void main(String[] args) {
       //二元运算符
       //Ctrl+D 复制到下一行
       int a= 10;
       int b= 20;
       int c= 10;
       int d= 10;
       System.out.println(a+b);//加
       System.out.println(a-c);//减
       System.out.println(a*d);//乘
       System.out.println(a/(double)b);//除 如果除数不在int范围类赋值要进行强制转换
       System.out.println("==========================================================================================");

       long e=1231412314l;
       int f=123;
       byte g=8;
       short h=18;
       System.out.println(e+f+g+h);//输出结果是long类型
       System.out.println(f+g+h);//如果没有long类型的话输出的都是int类型
       System.out.println(g+h);
       System.out.println("===========================================================================================");
       //关系运算符返回的结果: 正确 错误   布尔值 以后配合if使用
       //% 的使用方法
       int i=4;
       int j=b;
       int k=15;
       System.out.println(a>b);
       System.out.println(a<b);
       System.out.println(a==b);
       System.out.println(a!=b);
       System.out.println(k%i);//相当于 4/15 。。。3 4除以15 余3

  }

}

++ -- 的运用

自增 自减

一元运算符

    int a=3;
   int b=a++;// 先赋值再自增
   System.out.println(a);//输出4
   int c=++a;// 先增加再赋值
   System.out.println(c);//输出5

幂运算

//幂运算
double pow=Math.pow(5,6);
System.out.println(pow);

 

## 逻辑运算

```java
public class Day13 {
public static void main(String[] args) {
//逻辑运算
// 与(and) 或(or) 非(取反)
boolean a=true;
boolean b=false;
System.out.println("a&&b:"+(a&&b));// 逻辑 与 运算:两个变量都为真,结果才为真
System.out.println("a||b:"+(a||b));// 逻辑 或 运算:两个变量有一个为真,结果就为真
System.out.println("!a&&b:"+!(a&&b));// 如果是真则为假 如果为假则为真 (a&&b的结果是false,所以取反的结果是true)

//短路运算
int c=5;
boolean d=(c<3) &&(c++<4);
System.out.println(d);//在这里c不小于3,所以c<4是错误的,输出的结果也是错误的,不会进行后面的c++<4的运算
System.out.println(c);//c<3错误 不会运算后面的c++<4
}
}
```

## 位运算符

```java
public class Day01 {
public static void main(String[] args) {
/*
A= 0010 0110
B= 0101 0111
---------------------------------------------------------------------------------
A&B= 0000 0110 (对应位上两个都是1,得数才为1,反之为0)与
A|B= 0111 0111(对应位上有一个是1,得数就是1,反之为0)或
A^B= 0111 0001(对应位上相同的为0,不相同的为1)
~B = 1000 1110(对应位上相同的为1,不相同的为0)

<<左移 把数字乘以2
>>右移 把数字除以2

*/
System.out.println(2<<3);//输出16
/* 0000 0000 0
0000 0001 1
0000 0010 2
0000 0100 4 2左移1位
0000 1000 8 2左移2位
0001 0000 16 2左移3位
二进制 逢二进一 2的1往左边移三位就到了16的1的位置
*/
System.out.println(2>>3);//输出0 2位置的1往右移就没有了 所以输出0
}
}
```

## 拓展符和字符连接符

```java
public class Day02 {
public static void main(String[] args) {
//拓展符
int b=10;
int a = 30;
a+=b;//a=a+b
a-=b;//a=a-b
System.out.println(a );//只能输出一个

//字符连接符 +(在加法符号两侧只要出现string类型的,会把结果转化为string类型进行连接)
System.out.println(a+b);//输出40
System.out.println(""+a+b);//输出3010
}
}
```

## 三元运算符

```java
//三元运算符
// x ? y : z 如果x=true则为y 如果x=false则为z
int c=80;
int d=50;
String type =c<60?"不及格":"及格";
String tape =d<60?"不及格":"及格";
System.out.println(type);
System.out.println(tape);
```



原文地址:https://www.cnblogs.com/BoXyu/p/12764559.html