java基础语法-运算符 day03

运算符

1.算数运算符

	+  -   *  /  %  
	++   -- 
		使用方式:单独使用  参与运算
		当++ ,-- 出现在操作数后面时,先赋值再自加1/自减1
		当++,-- 出现在操作数前面时,先自加1/自减1

/*
算数运算符
+ - * / %
++ –
使用方式:单独使用 参与运算
当++ ,-- 出现在操作数后面时,先赋值再自加1/自减1
当++,-- 出现在操作数前面时,先自加1/自减1

/
class SuanShu{
public static void main (String[] args){
//操作+
/int a=3;
int b=4;
/
/
//+ (求和,字符串连接符)
System.out.println(a+b);//求和
//数值类型的数字和字符进行求和时先把字符转成编码值再进行求和
System.out.println(a+‘a’);
//字符串常量可以任意数据进行拼接
System.out.println(a+“a”+‘a’);//拼接
*/

	//操作-
	//0.20000000000000018  ---不是精确结果
	//小数没有精确运算

	/*double d=2.1-1.9;
	System.out.println(d);*/

	
	//操作*
	/*int e=6;
	int f=2;*/
	/*System.out.println(e/0);*/
	//ArithmeticException --算数异常
	/*System.out.println(e/f);*/
	//Infinity--正无穷大   -Infinity---负无穷大
	//java支持小数除零
	/*System.out.println(-a*1.0/0);*/
	//NaN  -Not A Number  不是一个数
	/*System.out.println(0.0/0);*/
	
	//0---
	//当参与操作的都是数据都是整型数据结果依然是整型数据
	/*System.out.println(2/4);*/
	//当参与操作的数据出现小数结构就是小数
	/*System.out.println(2*1.0/4);*/

	
	//操作%
	/*int a =3;
	int b=4;
	//%左边数据正负决定了取余结果的正负
	System.out.println(a%b);
	System.out.println(-a%b);
	System.out.println(a%-b);
	System.out.println(-a%-b);*/
	
	//++  --
	int a=3;
	int b=--a;//参与运算
	/*System.out.println(a++);//单独使用*/
	/*System.out.println(++a);*/
	
	/*System.out.println(a);*/
	//byte,short,cahr 做++  --时底层会默认添加强制类型转换
	byte b1=127;//强制类型转换
	b1++;
	short s=-32768;
	s--;
	System.out.println(s);
	
	System.out.println(b1);	
}

}

2.赋值运算符

赋值运算符
	= 把右边的值赋值给左边
	扩展赋值运算符
		+= ,-=, *= , /=,%= , &= ,(按位与等),|=(按位或等)
			^=(按位异或等), >>=(右移等),

/*
赋值运算符
= 把右边的值赋值给左边
扩展赋值运算符
+= ,-=, *= , /=,%= , &= ,(按位与等),|=(按位或等)
^=(按位异或等), >>=(右移等),
*/
class FuZhi{
public static void main (String[] args){
//定义变量
/int a=3;
int b=4;
a+=b;//a=a+b;
System.out.println(a);
/

	//支持定义形式
	//int a=1,b=2,c=3;
	//java不支持连等定义
	/*int a=b=c=3;*/
	//支持连等赋值
	/*int a=3;*/
	//展开从右往左计算
	/*int b=a+=a-=a*=5;
	System.out.println(b);//-9*/
	//右边变量的值不会影响左边已经编译好的值
	int a=3;
	int b=a+=a-=a*=a++;
	System.out.println(b);
	
}

}

3.关系(比较)运算符

关系(比较)运算符(结果值一定是布尔值
	==,!=,>,<,>=,<=

/*
关系(比较)运算符(结果值一定是布尔值
,!=,>,<,>=,<=
*/
class GuanXi{
public static void main(String [] args){
//操作 ==
System.out.println(2
4);
//操作 >=
System.out.println(5>=0);

}

}

4.逻辑运算符

用于左右两边布尔值

	&(逻辑与)   |(逻辑或)    ^(逻辑异或)   !(逻辑非)  
          &&(双与)  ||(双或)

/*
逻辑运算符
用于左右两边布尔值

	&(逻辑与)   |(逻辑或)    ^(逻辑异或)   !(逻辑非)  
          &&(双与)  ||(双或)

	总结:
		1,&  遇见false则false
		2,| 遇见true则true
		3,^ 两边关系相同则false,不同则true
		4,! 结果取反(当出现偶数个数结果不变)
		5,&&  ||
			&& 与逻辑与的运算规律一致 ,但是当&&左边出现false时,
                        右边默认不执行----短路效果
			|| 与逻辑或的运算规律一致,但是当||左边出现true时右
                        边默认不执行-=--短路效果

*/
class LuoJi{
public static void main (String [] args){
//定义变量
int a=1;
int b=2;
int c=3;

	//操作  &
	//
	System.out.println((a>c)&(b>c));
	System.out.println((a>b)&(b<c));
	System.out.println((a<b)&(b>c));
	System.out.println((a<b)&(b<c));
	System.out.println("----------------");
	
	
	//操作  |
	System.out.println((a>c)|(b>c));
	System.out.println((a>b)|(b<c));
	System.out.println((a<b)|(b>c));
	System.out.println((a<b)|(b<c));
	System.out.println("----------------");
	//操作  ^
	System.out.println((a>c)^(b>c));
	System.out.println((a>b)^(b<c));
	System.out.println((a<b)^(b>c));
	System.out.println((a<b)^(b<c));
	System.out.println("----------------");
	//操作  !
	System.out.println(!(b>c));
	System.out.println("----------------");

	//操作  &&
	System.out.println((a>c)&&(b>c));
	System.out.println((a>b)&&(b<c));
	System.out.println((a<b)&&(b>c));
	System.out.println((a<b)&&(b<c));
	System.out.println("----------------");
	
	//  ||出现在&&的左边且||出现短路,就会把后面的内容以及&&全部短路
	System.out.println(true||(a++==b)&&(b>c--));
	System.out.println(a);
	System.out.println(c);
	System.out.println("----------------");
	

	
	
	
}

}

5.位运算符

位运算符
	数据转成二进制补码形式
	&(按位与), |(按位或), ~(按位取反),^(按或异位)
	>>(右移  , <<(左移),>>>(无符号右移)

/*
位运算符
数据转成二进制补码形式
&(按位与), |(按位或), ~(按位取反),^(按或异位)
>>(右移 , <<(左移),>>>(无符号右移)

/
/

按位异或的扩展结论 (当一个整数按位异或另一个整数两次时结果还是本身)

*/
class Wei{
public static void main(String[] args){
//定义变量
/int a=2;
int b=3;
/
//操作 &
/System.out.println(a&b);//2
//操作 |
System.out.println(a|b);//3
//操作 ^
System.out.println(a^b);//1
//操作 ~
System.out.println(~a);//-3
/

	/*

	00000000  0000000  00000000  00000010  int  2补码
	00000000  0000000  00000000  00000011  int  3补码



	//操作&  遇0则0   任意整数&1==0 一定是偶数
	//任意 整数&正数 -一定是正数
	00000000  00000000  00000000  00000010
	00000000  00000000  00000000  00000011
	--------------------------------------
	00000000  00000000  00000000  00000010  2


	//操作 |  遇1则1 任意整数|0  结果一定是本身
	//任意的整数|负数  结果一定是负数

	00000000  00000000  00000000  00000010
	00000000  00000000  00000000  00000011
	--------------------------------------
	00000000  00000000  00000000  00000011  3


	//操作^(按位异或)相同则0 不同则1  任意整数^另一个整数结果还是0
	
	00000000  00000000  00000000  00000010
	00000000  00000000  00000000  00000011
	--------------------------------------
	00000000  00000000  00000000  00000001  1
	

	*/
	int a=2;
	int b=5;
	System.out.println(a^b^a);//5
	System.out.println(b^a^b);//2		
}

}

6.三目(元)运算符

三目(元)运算符(结果一定是一个值)
	格式:
		布尔表达式?表达式值1:表达式值2:;
		流程
			先计算出布尔表达式的值,如果是true返回表达式值1,
                        如果是false返回表达式值2

/*
三目(元)运算符(结果一定是一个值)
格式:
布尔表达式?表达式值1:表达式值2:;
流程
先计算出布尔表达式的值,如果是true返回表达式值1,
如果是false返回表达式值2
*/
class SanYuan{
public static void main (String [] args){
//求两个整数的最大值
/int a=1;
int b=2;
//把三目运算符赋值给新变量
//两个表达式的类型要小于等于接受值的类型
int max=a>b?a:b;
System.out.println(max);
/
//求三个整数的最大值
/int a=1;
int b=2;
int c=3;
//三目嵌套
System.out.println(a>b?(a>c?a:c):(b>c?b:c));
/
//优先级
System.out.println(1>=3-2);

}

}

优先级:

() ~ ++ – ! * / % + - << >> >>> 关系逻辑 & | ^ 三元赋值

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值