Java 运算符

1、++i 和 i++ 的区别(--i 和 i-- 一样)

    1)单独使用

 

public class TestDemo
{
	public static void main(String[] args) 
	{
		int a = 1;
		int b = 1;
		a++;
		++b;
		System.out.println("a = " + a + ", b = " + b);
	}
}

 

运行结果:

 


    2)赋值使用

 

public class TestDemo
{
	public static void main(String[] args) 
	{
		int a = 1;
		int b = 1;
		int c = ++a;
		int d = b++;
		System.out.println("a = " + a + ", b = " + b + ", c = " + c + ", d = " + d);
	}
}

运行结果:

 

综上所述:

当单独使用时,++i 和 i++ 效果是一样的,都是做自加运算。而在和赋值语句一起使用时,++ 在前,i 先自加,再赋值;++ 在后,先赋值,再自加。c = ++a,a 进行自加,然后再赋值给 c,所以 c 的输出结果为 2;而 d=b++,b 先将自己的值赋给 d,然后再进行自加,所以 d = 1;变量 a 和 b 都进行了自加运算,所以输出结果都为 2。

 

2、i += 1 和 i = i + 1 的区别

一直以来都以为这两个表达式是等效的,但是在看了传智播客刘意老师的视频后发现并非如此

 

public class TestDemo
{
	public static void main(String[] args) 
	{
		byte b = 100;
		b = b + 1;
	}
}


编译报错:

 

 

public class TestDemo
{
	public static void main(String[] args) 
	{
		byte b = 100;
		b += 1;
	}
}

 

编译通过:

 

由此可以看出 i += 1 和 i = i + 1 并不是等效的,i += 1 应该等效于 i = (byte) (i + 1),在本例子中,i 的数据类型为 byte,实际上 i += 1 应该等效于 i = (i的数据类型) (i + 1),此处有一个隐含的数据强转过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值