JAVA-运算符

1.算数运算符

运算符:对常量或变量进行操作的服啊后

表达式:用运算符吧常量或者变量结合起来符合java语法的式子称之为表达式。

不同运算符连接的表示是体现的是不同类型的表达式

int a =10;

int b =20;

int c = a + b;

 "+"是算术运算符,"a+b"是表达式,也可称之为算数表达式

应用

符号作用说明
+
-
*
/
%取余

注意:/和%的区别:/ 的作用是两个数相除;%的作用是取两个数相除以后的余数。

           整数的操作最后的结果只得到整数,要想得到小数结果,则需要有浮点数参与运算。

int a =10;

int b =3:

System.out.println(a/b);   //输出的结果是3

System.out.println(a%b);   //输出的结果是1

 “+”的操作

除了常规从小学就开始使用的“+”的含义以外,在java中也可以对字符或者字符进行运算。而参与运算的基础则是根据ASCII码表运算的。

char 类型参与算术运算,使用的是计算机底层对应的十进制数值。需要我们记住三个字符对应的数值:
'a' -- 97 a-z 是连续的,所以 'b' 对应的数值是 98 'c' 99 ,依次递加
'A' -- 65 A-Z 是连续的,所以 'B' 对应的数值是 66 'C' 67 ,依次递加
'0' -- 48 0-9 是连续的,所以 '1' 对应的数值是 49 '2' 50 ,依次递加
// 可以通过使用字符与整数做算术运算,得出字符对应的数值是多少
char ch1 = 'a' ;
System . out . println ( ch1 + 1 ); // 输出 98 97 + 1 = 98
char ch2 = 'A' ;
System . out . println ( ch2 + 1 ); // 输出 66 65 + 1 = 66
char ch3 = '0' ;
System . out . println ( ch3 + 1 ); // 输出 49 48 + 1 = 49
算术表达式中包含不同的基本数据类型的值的时候,整个算术表达式的类型会自动进行提升。
提升规则:
byte 类型, short 类型和 char 类型将被提升到 int 类型,不管是否有其他类型参与运算。
整个表达式的类型自动提升到与表达式中最高等级的操作数相同的类型
等级顺序: byte,short,char --> int --> long --> float --> double
byte b1 = 10 ;
byte b2 = 20 ;
// byte b3 = b1 + b2; // 该行报错,因为 byte 类型参与算术运算会自动提示为 int int 赋值给 byte 可能损失
精度
int i3 = b1 + b2 ; // 应该使用 int 接收
byte b3 = ( byte ) ( b1 + b2 ); // 或者将结果强制转换为 byte 类型
-------------------------------
int num1 = 10 ;
double num2 = 20.0 ;
double num3 = num1 + num2 ; // 使用 double 接收,因为 num1 会自动提升为 double 类型
”+” 操作中,如果出现了字符串,就是连接运算符,否则就是算术运算。当连续进行 “+” 操作时,从左到右逐个执 行。
System . out . println ( 1 + 99 + " 年黑马 " ); // 输出: 100 年黑马
System . out . println ( 1 + 2 + "itheima" + 3 + 4 ); // 输出: 3itheima34
// 可以使用小括号改变运算的优先级
System . out . println ( 1 + 2 + "itheima" + ( 3 + 4 )); // 输出: 3itheima7

自增自减运算符的使用

符号作用说明
++自增变量的值+1
--自减0变量的值-1

注意:在单个字符的自增自减运算是,自增自减运算符不论在字符的左边还是右边,最后的运算结果是一样的。但其内在的运算规律则是不一样的

当自增自减运算符在变量的右边时,则是先把变量参与操作而后变量再做自增或者自减的运算。

当自增自减运算符在变量的左边时,则是先把变量做自增或者自减运算,而后变量再参与操作。

int i = 10 ;
i ++ ; // 单独使用
System . out . println ( "i:" + i ); // i:11
int j = 10 ;
++ j ; // 单独使用
System . out . println ( "j:" + j ); // j:11
int x = 10 ;
int y = x ++ ; // 赋值运算, ++ 在后边,所以是使用 x 原来的值赋值给 y x 本身自增 1
System . out . println ( "x:" + x + ", y:" + y ); // x:11 y:10
int m = 10 ;
int n = ++ m ; // 赋值运算, ++ 在前边,所以是使用 m 自增后的值赋值给 n m 本身自增 1
System . out . println ( "m:" + m + ", m:" + m ); // m:11 m:11

赋值运算符

赋值运算符的作用是将一个表达式的值赋给左边,左边必须是可以修改的,不能是常量。

符号作用说明
=赋值a=1,将1赋值给变量a
+=加后赋值a+=b,将a+b的值赋值给b
-=减后赋值a-=b,将a-b的值赋值给b
*=乘后赋值a*=b,将a*b的值赋值给b
/=除后赋值a/=b,将a➗b的商赋值给b
%=趋于后赋值a%=b,将a➗b的余数赋值给b

关系运算符

关系运算符有6种,用于表达变量之间的关系,分别为小于、等于、大于、小于等于、大于等于、不等于。

符号说明
==a==b,判断a和b是否相等,相等则为true,否则false
!=a!=b,判断a和b 的值是否不相等
>a>b,判断a的值是否大于b
<a<b,判断a的值是否小于b
>=a>=b,判断a的值是否大于等于b
<=a<=b,判断a的值是否小于等于b

逻辑运算符

逻辑运算符是把各个运算的关系表达式连接起来组成一个复杂的逻辑表达式,一判断程序中的表达式是否成立,判断的结果是true或者false。

符号作用说明
&逻辑与a&b,a和b的结果都是true,结果则是true,否则为false
l逻辑或a l b,a和b都true,结果是true,否则为false
^逻辑异或

a^b,a和b的结果不同为true,否则为false

!逻辑非!a,结果和a的结果正好相反
// 定义变量
int i = 10 ;
int j = 20 ;
int k = 30 ;
//& “ ,并且的关系,只要表达式中有一个值为 false ,结果即为 false
System . out . println (( i > j ) & ( i > k )); //false & false, 输出 false
System . out . println (( i < j ) & ( i > k )); //true & false, 输出 false
System . out . println (( i > j ) & ( i < k )); //false & true, 输出 false
System . out . println (( i < j ) & ( i < k )); //true & true, 输出 true
System . out . println ( "--------" );
//| “ ,或者的关系,只要表达式中有一个值为 true ,结果即为 true
System . out . println (( i > j ) | ( i > k )); //false | false, 输出 false
System . out . println (( i < j ) | ( i > k )); //true | false, 输出 true
System . out . println (( i > j ) | ( i < k )); //false | true, 输出 true
System . out . println (( i < j ) | ( i < k )); //true | true, 输出 true
System . out . println ( "--------" );
//^ “ 异或 ,相同为 false ,不同为 true
System . out . println (( i > j ) ^ ( i > k )); //false ^ false, 输出 false
System . out . println (( i < j ) ^ ( i > k )); //true ^ false, 输出 true
System . out . println (( i > j ) ^ ( i < k )); //false ^ true, 输出 true
System . out . println (( i < j ) ^ ( i < k )); //true ^ true, 输出 false
System . out . println ( "--------" );
//! “ ,取反
System . out . println (( i > j )); //false
System . out . println ( ! ( i > j )); //!false , 输出 true

短路逻辑运算符

符号作用说明
&&短路与作用和&相同,但是有短路效果
ll短路或作用和l相同,但是有短路效果
在逻辑与运算中,只要有一个表达式的值为 false ,那么结果就可以判定为 false 了,没有必要将所有表达式的值都
计算出来,短路与操作就有这样的效果,可以提高效率。同理在逻辑或运算中,一旦发现值为 true ,右边的表达式
将不再参与运算。
逻辑与 & ,无论左边真假,右边都要执行。
短路与 && ,如果左边为真,右边执行;如果左边为假,右边不执行。
逻辑或 | ,无论左边真假,右边都要执行。
短路或 || ,如果左边为假,右边执行;如果左边为真,右边不执行。

int x = 3 ;
int y = 4 ;
System . out . println (( x ++ > 4 ) & ( y ++ > 5 )); // 两个表达都会运算
System . out . println ( x ); // 4
System . out . println ( y ); // 5
System . out . println (( x ++ > 4 ) && ( y ++ > 5 )); // 左边已经可以确定结果为 false ,右边不参与运算
System . out . println ( x ); // 4
System . out . println ( y ); // 4

 三元运算符

表达式:  关系表达式?表达式1 :表达式2;

解释:问号前面的位置是判断的条件,判断结果为 boolean 型,为 true 时调用表达式 1 ,为 false 时调用表达式 2 。其
逻辑为:如果条件表达式成立或者满足则执行表达式 1 ,否则执行第二个。
int a = 10 ;
int b = 20 ;
int c = a > b ? a : b ; // 判断 a>b 是否为真,如果为真取 a 的值,如果为假,取 b 的值

  • 54
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值