天天看点

java基础04:基本运算符

运算符

算数运算符:+,-,*,%,++,--

赋值运算符:=

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

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

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

条件运算符:?:

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

任何数与long类型进行运算操作(加减乘除之类)结果都是long类型。如果没有long,结果都为int

同理运算里有double,结果也为double

关系运算符返回布尔值,结果:正确、错误。

清楚++a,a++,--a,a--

例:计算2的三次方,2^3

需要调用数学函数,很多运算会使用一些工具类操作

double pow = Math.pow(2,3);

System.out.println(pow);

逻辑运算符

&& || !

与 或 非

&&:两个变量都为真,结果为真。只要有一个变量为假,结果为假

||:只要有一个变量为真,结果为真。两个为假,结果为假

! :真边假,假变真

短路运算:

若a=false,则判断a&&b时,不会运行b

例:

public class Day4 {

           public static void main(String[] args) {

               int a=5;

               boolean b=(a<5)&&(a++<5);

               System.out.println(b);

       System.out.println(a);

  }

}

结果:false 5

证明,在与运算中,第一个变量为假,则不会判断第二个变量,直接输出结果为假

A = 0011 1100

B = 0000 1101

A&B=0000 1100 //都为1,才落1。否则就落0

A|B= 0011 1101 //只要有1就落1。

A^B=0011 0001 //上下相同落0,不同落1

~B =1111 0010 //0变1 ,1变0

左移<< 相当于把数字乘二 *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。

如果输出的数前面是字符串+ 后面的。那么后面的数都被转换成字符串连接。

例如:

字符串在前面,后面都转为字符串

字符串在后面,前面依旧运算。

x ? y : z

如果x==true,则结果为y,否则结果为z

例如:

int score = 80;

String type = score<60?"不及格":"及格";

   System.out.println(type);

//结果:及格

<col>

优先级

1

()

2

! +(正) -(负) ++ --

3

* / %

4

+(加) -(减)

5

&lt; &lt;= &gt; &gt;=

6

== !=

7

^

8

&amp;&amp;

9

||

10

?:

11

= += -= *= /= %=