【Java基础学习】运算符

1.运算符

Java语言支持如下运算符:

算术运算符 加减乘除:+, -, *, /, %(取余,“模”), ++, –

赋值运算符 =

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

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

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

条件运算符 ?,:

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

2.IDEA里建一个文件夹

#### [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nfag6V7r-1613740291797)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210219154248196.png)]

3.IDEA快捷键

:ctrl+D复制当前行到下一行

4.加减乘除、取余

(注意结果的类型可能不符,需要强制转换)

// 二元运算符
//ctrl+D  :  复制当前行到下一行
int a=10;
int b=20;
int c=32;
int d=40;

System.out.println(a+b);//加,输出30
System.out.println(a-b);//减,输出-10
System.out.println(a*b);//乘,输出200
System.out.println(a/b);//除,输出0不为0.5,需要转换一个为浮点型
//System.out.println(a/(double)b);//输出0.5,符合
System.out.println(c%a);//取余,输出2,表示余数为2

5.运算结果的类型规则:

存在比int高的相加结果为高的那个类型,比int低的相加结果为int类型

long a =2983918930809L;
int b=345;
short c=11;
byte d=8;

System.out.println(a+b+c+d);//结果为Long型,比int高的相加结果为高的那个类型
System.out.println(b+c+d);//结果为Int型,比int低的相加结果为int类型
System.out.println(c+d);//结果为Int型,比int低的相加结果为int类型
System.out.println((double) c+d);//结果为double型

6.关系运算符

int a=10;
int b=10;

System.out.println(a>b);//输出false
System.out.println(a<b);//输出false
System.out.println(a==b);//输出true
System.out.println(a!=b);//输出false

7.自增自减++, –

//++  --  自增,自减  一元运算符
int a=3;

int b=a++;
/* a++ 表示先给b赋值,再自增,
相当于下面两行代码:
int b=a;
   a=a+1;
*/

int c=++a;
/* ++a 表示先自增,再给c赋值,
相当于下面两行代码:
a=a+1;
int c=a;
*/

System.out.println(a);//输出5
System.out.println(b);//输出3
System.out.println(c);//输出5

8.幂运算举例(2^3) 用 math.pow(2,3) 来表示

//幂运算 2^3  2*2*2=8  很多运算,我们会使用一些工具类来操作!
double pow = Math.pow(2,3);//2^3
System.out.println(pow);//输出8.0

9.逻辑运算符

//逻辑运算符:与,或,非
boolean a =true;
boolean b=false;

System.out.println("a && b:"+(a&&b));//输出是a && b:false,  逻辑与运算:两个变量都为真,结果才为真
System.out.println("a || b:"+(a||b));//输出是a || b:true     逻辑或运算:两个变量有一个为真,则结果为真
System.out.println("!(a&&b):"+!(a&&b));//输出是!(a&&b):true   逻辑非运算:真变为假,假变为真
//注意加号的使用,字符串加其他结果

10.短路运算

//短路运算
int c =5;
boolean d=(c<4)&&(c++<4);
System.out.println(d);//输出false
System.out.println(c);//输出5,说明后面的c++没有运行,只判断了前面的c<4

11.位运算

&,|,^, ~, >>, <<

/*
A= 0011 1100
B= 0000 1101

A&B=0000 1100
//同位都为1,结果该位就为1,否者就为0
A|B=0011 1101
//同位都为0,结果该位就为0,否则就为1(只要有一个1结果就为1)
A^B=0011 0011
//抑或运算,如果两个相同都为1或者都为0,则结果为1,否者为0
~B=1111 0010
//取反运算,和B的相反


<<左移  相当于把数字 *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,相当于把0000 0010变为了0001 0000
System.out.println(2>>3);//输出0,位数不够

12.扩展赋值运算符

*+=, -=, =, /=

a+=b; //a=a+b
a-=b; //a=a-b

13.字符串连接符+

//字符串连接符,+前后有String类型(”“)运算,结果会都转换成String类型,连接起来
System.out.println(a+b);  //30
System.out.println(""+a+b); //输出1020,结果转换成String类型,连接起来
System.out.println(a+b+""); //输出30,先后顺序,先运算a+b,再转换成String

14.条件运算符 ?,:

/* x ? y : z
如果x==true,则结果为y,否则结果为z  */

int score = 80;
String type =score <60 ?"不及格" :"及格";
String type2 =(score-30) <60 ?"不及格" :"及格";
System.out.println(type);//输出及格
System.out.println(type2);//输出不及格

猜你喜欢

转载自blog.csdn.net/weixin_44302662/article/details/113871975