--(也就是-1)
这里使用a,b解释
<>1:b = a--
这里是先将a值赋给b之后,然后a进行自身的--
<>2:b = --a
这里是a值先将自己--,让后将值赋给b
++(也就是+1)
这里使用x,y解释
<>1:x = ++y
这里是先进行y++之后让后再进行赋值y--(赋值)>b
<>2:x = y++
这里是先将y值赋给x.然后进行自身的++
这里使用a,b解释
<>1:b = a--
这里是先将a值赋给b之后,然后a进行自身的--
<>2:b = --a
这里是a值先将自己--,让后将值赋给b
++(也就是+1)
这里使用x,y解释
<>1:x = ++y
这里是先进行y++之后让后再进行赋值y--(赋值)>b
<>2:x = y++
这里是先将y值赋给x.然后进行自身的++
下面有一道例题:
package com.csdn.jdbcdemo.date2017_11_14;
/**
* --和++的在前和在后的区别却别
* @author 89155
*
*/
public class AddMinusDemo {
public static void main(String[] args) {
//i--
Text();
//--i
Text2();
//i++
Text3();
//++i
Text4();
//面试题
Text5();
}
//i--
private static void Text() {
int i = 4 ;
int j = 3;
j = i--;
System.out.println("i的值是:"+i);//3
System.out.println("j的值是:"+j);//4
System.out.println("--------------");
}
//--i
private static void Text2() {
int i = 3 ;
int j = 4;
j = --i;
System.out.println("i的值是:"+i);//2
System.out.println("j的值是:"+j);//2
System.out.println("--------------");
}
//i++
private static void Text3() {
int i = 1 ;
int j = 1;
j = i++;
System.out.println("i的值是:"+i);//2
System.out.println("j的值是:"+j);//1
System.out.println("--------------");
}
//++i
private static void Text4() {
int i = 1 ;
int j = 1;
j = ++i;
System.out.println("i的值是:"+i);//2
System.out.println("j的值是:"+j);//2
}
//面试题
private static void Text5() {
int i = 2;
int j = 1;
if(i == (++j) && (j++)==i){
i+=j;
}else{
i+=j;
}
/*
* 最后输入的结果到到底是4?还是5?
* 很多人存在疑问
* 先说&&左边
* i = 2 j = 2这个没有多少疑问
* 可以理解为加入引入第三个变量理解
* (++j) -->可以理解为 k=++j;所以为j=2
*
* &&让后就是右边了
* 照样可以引入第三方变量理解
* (j++)-->k=j++,是将值先给k和i作比较.做完比较之后
* 下面的运算开始.那个时候j的值变为了3
* 可以将上面的代码多理解就可以了
*
*/
System.out.println("结果为:"+i);//5
}
}