2020-10-24 运算符

运算符

算术运算符

      • / % ++ –
  • 运算符有优先级,不确定加小括号,优先级提升
public class Lianxi5
{
	public static void main(String[] args){
	int i=10;
	int j=3;
	System.out.println(i+j);
	System.out.println(i-j);
	System.out.println(i*j);
	System.out.println(i/j);
	System.out.println(i%j);
	//自加运算符++
	int k=10;
	k ++;//自加1
	System.out.println(k);//++运算符可以出现在变量前,也可以出现在变量后,运算结束,变量就自加1
	int a=100;
	int b=a ++;//++出现在变量后,先将a赋值给b,在对a进行自加运算
	System.out.println(a);//101
	System.out.println(b);//100
	int m=20;
	int n=++m;//++出现在变量前,先进行自加1,再赋值
	System.out.println(m);//21
	System.out.println(n);//21
	int xx=500;
	System.out.println(xx);
	System.out.println(--xx);
	System.out.println(xx++);
}
}

关系运算符

= < <= == !=
关系运算符的运算结果一定是布尔类型,true/false
关系运算符比较的是变量的值

public class Lianxi6
{
	public static void main(String[] args){
	int a=10;
	int b=10;
	System.out.println(a==b);//true
	System.out.println(a>b);//false
	System.out.println(a>=b);//true
	System.out.println(a<b);//false
System.out.println(a<=b);//true
System.out.println(a!=b);//false//比较的是a和b里面保存的值
	}
	}

逻辑运算符

& 逻辑与(两边的算子都是真,结果是真);
| 逻辑或(两边的算子有一个是真,结果是真);
!逻辑非(取反)
^ 逻辑异或(两边的算子只要不一样,结果就是真);
&& 短路与(短路与和逻辑与的运算结果相同,只不过存在短路现象);
|| 短路或(短路或和逻辑或的运算结果相同,只不过存在短路现象);
逻辑运算符要求两边的算子必须是布尔类型,并且运算完之后的结果也是布尔类型

public class Lianxi6
{
	public static void main(String[] args){
System.out.println(5 > 3 & 5 > 2);//true
System.out.println(5 > 3 & 5 > 6);//false
System.out.println(5 > 3 | 5 > 6);//true
//逻辑与和短路与
int x=10;
int y=8;
System.out.println(x < y & ++x < y);//逻辑与
System.out.println(x);//11
int a=10;
int b=8;
System.out.println(a < b && ++a < b);//短路与,由于运行a<b以后结果已经是false,则后边的++a<B不再运算,电路没有运行,所以最后输出a是10。如果第一个表达式运行结果是true,则执行短路或。
System.out.println(a);//10
	}
	}

赋值运算符

1.基本赋值运算符

2.扩展的赋值运算符
+= -= *+ /+ %=
扩展类的赋值运算符不改变运算结果 类型,假设最初这个变量的类型是byte类型,无论怎么进行追加或追减,最终该变量的数据类型还是byte 类型。

public class Lianxi7
{
	public static void main(String []args){
		int i=10;
	i=i+5;
	i+=5;//追加,等同于i=i+5
	System.out.println(i);//20
	i-=5;
	System.out.println(i);//15
	i*=2;
		System.out.println(i);//30
	i/=4;
	System.out.println(i);//7
	i%=2;
		System.out.println(i);//1
		byte b=10;
		//b=b+5;编译错误,大容量int 向小容量byte 转换,需要加强制类型转换符
b=(byte)(b+5);
	System.out.println(b);
	byte x=10;
	x+=5;//编译通过,不等同于x=x+10,等同于x=(byte)(x+5)
		System.out.println(x);
		byte z=0;
		z+=128;
			System.out.println(z);//-128损失精度
}
}

字符串连接运算符

当“+”运算符两边都是数字的话,一定进行加法运算。
当“+”运算符两边只要有一个数据是字符串,一定会进行字符串连接运算,并且,连接以后的数据还是一个字符串类型。
在没有添加小括号的前提下,从左至右依次进行运算

public class Lianxi7
{
	public static void main(String []args){
	int a=20;
	int b=20;
	//要求以动态方式输出
System.out.println(10+20+"30");//3030,第一个加号是求和,第二个加号是字符串连接运算符
System.out.println(10+(20+"30"));//102030
System.out.println("10+20="+a+b);//"10+20=30"
System.out.println("a+20="+a+b);
System.out.println(a+"+20="+(a+b));//10+20=30
System.out.println(a+"+"+b+"="+(a+b));//10+20=30,动态,可改变ab的值

String username = "nibaba";
System.out.println("欢迎"+ username +"回来");
	}
}

一定要明白"+"什么时候是字符串连接运算符,什么时候是加法运算符

三目运算符

1.语法规则:布尔表达式?表达式1:表达式2
2.三元运算符的执行原理
当布尔表达式的结果是true时,选择表达式1作为整个表达式的执行结果
当布尔表达式的结果是false时,选择表达式2作为整个表达式的执行结果

public class Lianxi7
{
	public static void main(String []args){
	boolean sex=false;
	char c=sex?'男':'女';
	System.out.println(c);

	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值