3. 六大类运算符

3. 六大类运算符

运算符包含6大类:算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、三元运算符。下面分别介绍。

1.算术运算符

1.1 + - * /

对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只 保留整数部分而舍弃小数部分.注意运算时的自动类型提升。

int i1=12;

int i2=5;

int result=i1/i2; //2

double result1=i1/(i2+0.0);//2.4

double result2=(double) i1/i2;//2.4

System.out.println(result);

System.out.println(result1);//

System.out.println(result2);//

1.2 %

如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。 但被模数是 负数则不可忽略。此外,取模运算的结果不一定总是整数.

//正数取模为正

5%2=1;

5%(-2)=1;

//负数取模为负

-5%2=-1;

-5%(-2)=1;

1.3自增自减运算 ++,- -

++a和a++的异同

++a是先增1,再赋值;a++是先赋值,再增1;

++a不会改变a的类型例如:

short a=10;

a++;

++a;//都可以编译通过,12

int a=10;

int b=++a;//a=11,b=11

//*******

int c=10;

int d=c++;//d=10,c=11;操作顺序是c先赋值给d,然后自增1

//*******

int e=10;

e++;

int f=e;//f=11,e=11

//*******

int g=10;

++g;

int h=g;//g=11,h=11

//****************************

int a=10;

int b=(a++)+(++a);//可以拆分为c=a++,d=++a,b=c+d

//c=10,d=12,a=12,b=22

System.out.println("a="+a);//12

System.out.println("b="+b);//22

2. 赋值运算符

包含 = ,+=,-=,*=,/=,%=

当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。支持连续赋值,连等。

int i,j;

i=j=10;

+= 等运算符,不会改变数据类型

//*********练习1

short s = 3;

s = s+2; // 编译失败

s += 2; //编译成功

//*********练习2

int i=1;

i*=0.1;//不会改变数据类型,int i=1*0.1=0;

//*********练习3

int n=3,m=2;

n*=m++;//拆解为n=n*m++;

//m先运算m++,符合先赋值,再增1,即n=3*2

System.out.println("n="+n);//6

System.out.println("m="+m);//3

//*********练习4

//*****************

int n=10;

n+=(n++)+(++n);//32

//拆解n=n+(n++)+(++n);

// 10+10+12

3. 比较运算符

4. 逻辑运算符

逻辑运算符针对的是,布尔型变量进行运算。

其中需要注意的是:

“&”和“&&”的区别:

单&时,左边无论真假,右边都进行运算;

双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。“|”和“||”的区别同理,||表示:当左边为真,右边不参与运算。**异或( ^ )**与或( | )的不同之处是:当左右都为true时,结果为false。 理解:异或,追求的是“异”!异或,当双元为异,输出true;当双元为同,输出false;

5. 位运算符

6. 三元运算符

相关推荐

365登录器 csgo段位查询 csgo如何看自己的段位
office365网页版无法使用 2025年十款热门自平衡电动车产品榜
office365网页版无法使用 防火墙的几种部署模式和方法

防火墙的几种部署模式和方法

📅 08-11 👁️ 6309