x++和++x的题型计算理解

直接看题

j = i++;

		int i = 0;
		int j = i++;
		System.out.println(j);
		//输出结果为0;
		//i=1;

用堆栈来讲这个问题可能会牵扯很复杂,总是弄不清,在网上看到的一个对上面过程的通俗讲解:
Java在执行变量=i++; 在执行变量赋值语句(不是常量赋值,而是例如:i= a;即赋值符号后面有变量)之前,会把i的值先找个地方保存起来,然后直接在i变量的空间内对值+1(保存是为了备用),然后再把刚才保存起来的那个值赋给变量j。

y = x++ + ++x;

		int x = 2;
		int y = 0;
		//后四行可理解为 int y = x++ + ++x;的拆分
		int a = x++;
		System.out.println(a);
		int b = ++x;
		System.out.println(b);
		y = a + b;
		System.out.println(x);
		System.out.println(y);

首先根据上面讲解,根据运算符规则,先计算++,再计算+,先看x++,此处x先计算再++,先将x找个地方保存,此时x用x = 2;参与计算,但备用的x已经完成加1变为3,后面++x,先加1,再计算,x再从三变为4,用4来参与计算,此时,y = 2 + 4 = 6;x = 4;
后面的就不一一解释了,我也可能解释不出来,哈哈。如有更好的方案,欢迎推荐。

System.out.println(x++);和a = x++;

++x和x++无论是a = x++;还是System.out.println(x++);均先输出x的值,再进行x++。
例:

	 	int x = 2;
		int a = x++;
		System.out.println(a);
		//输出结果为2;
		//x = 3;
		int x = 5;
  		System.out.println(x++);
  		//输出结果为5;
  		//x = 6;

i++!=5

		int i = 4;
		while(i++!=5){
		System.out.println(i);
		}
		System.out.println(i);
		//结果为5和6,只有两个结果

if(x–<5){ } else { }

 		int  x = 5;
  		if(x--<5){
   	 		System.out.println(x);
   	 	}else{
  	 		System.out.println(x++);
    	}

这个例子牵扯到运算符优先级,x- -优先级大于<,先看x- -,x- -是后减,故再看x<5,不成立,故执行else后面的语句,x变为4.此时x++先运算再加一,故输出x的值为4,但实际x又加一变为5。
运算符优先级参考:https://blog.csdn.net/qq_40690077/article/details/97612453
引用转载请注明出处:
https://blog.csdn.net/qq_40690077/article/details/97922117

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值