i++, ++i 类问题,把i++和++i看做整体,++i 整体会自增1,i++整体不会自增1,但是i++和++i,i本身都会自增1. public class Demo {@Testpublic void test_1() {int i = 1;//先赋值后++,其实这种说法有问题,肯定是赋值是最后一步的,//首先我们明确一点:我们是把(i++)整体表达式赋值给k而不是把i赋值给k//我们计算
“++” 在后时,先取值再运算。 public class Test {public static void main(String[] args) {int a = 10;int b = 20;int c = b++; //先把b值附给 c, 然后b本身再自加 1System.out.println("c=" + c);System.out.println("b=" + b);}} 输出:
int a=1; int b=1; a+++++b; a---b; 经常有人问到以上的这些表达式的值是什么..?是根据什么原理来分析这样的表达式...?就这个内容,来讨论一下... 这里需要涉及到"贪心法"这个说法了...在<<c traps and pitfalls>>中说明了这样一个规则:每一个符号应该包含尽可能多的字符. 意思是:编译器在分析程序的时候,是从左至右的单个字符
int i=3;//i先加1,i的值变成4,把4赋值给j,j的值就是4,可以理解为++i的值为4j=++i;//把i的原值3赋值给b,b的值为3,i再加1,i的值变成4,可以理解为i++的值为3b=i++;printf("%d",++i);//输出值为4printf("%d\n",i++);//输出值为3 ++、--的结合方向是自右至左(右结合性)
自增++ 与 自减– public class Math01 {public static void main(String[] args) {// ++ -- 一元运算符int i = 3;System.out.println("i="+i); // i=3int a = i++;// i = i + 1; // 先赋值,再自增System.out.println("a="+a);
自增自减运算符 // a = 3int a = 3;// a++是先赋值,再自增,可以拆分为 b = a; a = a + 1;int b = a++;// ++a是先自增,再赋值,可以拆分为 a = a + 1; c = aint c = ++a;// a的结果为:5System.out.println(a);// b的结果为:3System.out.println(b);
自增、自减运算 a++后自增:先使用变量,后运算 var a= 10;console.log(a++);//10console.log(a);//11 ++b前自增:先运算,后使用变量 var b=10;console.log(++b);//11console.log(b);//11 综合运用 var n =10;// 10+11+12-13+13-12var sum = n++