JAVA
自增自减运算符 ++和–
自增自减运算符,只能用于变量,效果是变量自增或者自减1。自增运算符有两种用法:
前加加(++i) 和 后加加(i++)。无论是++i还是i++,i都是自增,区别就是++i的结果是自增以后的值,而i++的结果是自增以前的值。
public class AddAdd{
public static void main(String[] args){
int i = 1;
int j = 1;
System.out.println(++i); // 2
System.out.println(i); // 2
System.out.println(j++); // 1
System.out.println(j); // 2
}
}
举个例子:
public class TestSelf{
public static void main(String[] args){
int i = 3;
System.out.println("i = " + i); //i = 3
//表示让i变量自身的数值加1, i = 4; 一元运算符
//i++ 整体叫做表达式 i叫做操作数 ++叫做操作符/运算符
i++;
System.out.println("i = " + i); // i = 4
//表示让i变量自身的数值加1,i = 5
++i;
System.out.println("i = " + i); // i = 5
System.out.println("------------------------------------------");
//区分一下i++表达式的结果和i自身的结果
//打印i++这个表达式的结果,后++表示先使用i再++
//于是表达式的结果就是i++之前的数值,也就是5
//表达式计算完毕后i自身要++,i变成了6
System.out.println("i++ = " + i++); //5 i++表示先打印i再执行++
System.out.println("i = " + i); //6
//前++表示先++再使用,也就是让++之后的结果作为表达式的结果
System.out.println("++i = " + ++i); //7 ++i表示先++再打印出来
System.out.println("i = " + i); //7
System.out.println("------------------------------------------");
//表示先将表达式的数值赋给ic,然后i自己再加1
int ic = i++;
System.out.println("ic = " + ic);//7
System.out.println("i = " + i);//8
//表示先将i自己的数值加1,然后赋给id
int id = ++i;
System.out.println("id = " + id);//9
System.out.println("i = " + i);//9
}
}
相关比较坑的面试题
请写出下列输出的值
public class TestSelf{
public static void main(String[] args){
int i = 3;
System.out.println("i = " + i); //
System.out.println(i++ + ++i); //
System.out.println("i = " + i); //
}
}
答案:
public class TestSelf{
public static void main(String[] args){
int i = 3;
System.out.println("i = " + i); //3
System.out.println(i++ + ++i); //3 + 5 = 8
//i++表示先执行其他运算再执行++,所以i=3
//i在此前i++的表达式运算之后已经变成4,所以++i等于5
//所以3 + 5 = 8
System.out.println("i = " + i); //5
}
}