第1个回答 2011-06-06
可以这么理解:
如果i++和++i其单独作为一个语句时,效果是一样的,只有作为表达式一部分时才有i++和++i的区别。for(1;2;3)后面是三个表达式语句,因为用的是“;”,如果你用单步调试也可以发现i++或++i是作为一个语句执行的。所以for是先执行i++;或++i;语句,执行完这条语句之后再执行下一条的比较语句。本回答被提问者采纳
第2个回答 2011-06-06
应该这么说吧,是表达式与语句的区别,
i=8 是表达式
i=8; 是程序语句
对于一个表达式内,i++这个表达式的值等于i,然后i自加1
而for语句里分四块,前三块通常说为 表达式一、表达式二、表达式三,第四块说循环体,循环体可以是单一语句(可不加大括号),循环体是复合语句(语句块)时,必需加大括号
自增、自减是对一个表达式来说的,因此,表达式一、表达式二、表达式三的自增、自减互不影响
希望回答对你有帮助。
第3个回答 2021-08-03
我感觉这样子更便于理解吧:
int i = 0;
int j = i++;
int x = 0;
int y = ++x;
System.out.println(i);//这时i为1
System.out.println(j);//这时j为0
System.out.println(x);//这时x为1
System.out.println(y);//这时y为1
//由上面程序可以看出,i和x初始值都为0(其实意义都是为了验证i++和++i的区别)
//然后不管时i++还是++x最后输出的值都为1
//但是j和y因为++在前和后的关系,最后的值不通
//所以可以得出
//++在后的j,先把i(0)赋值给j,i再自增变成1
//++在前的y,i先自增变成1,最后再赋值给y
//总结:而在for中或者任何表达式中,自增量i或x不管如何,在下一条程序指令执行前,值都已经发生变化,只是在当前程序指令的发生先后顺序不一致,巧妙记忆:++在前先自增,++在后后自增
第4个回答 2022-04-04
我觉得这样好理解:每次循环先判断 i 是否满足i<=10,如果满足就执行printf("%d ", i),再执行自增语句。【重点】是无论执行i++和++i,变量i的值一定会加一,注意这里是变量i的值,不是表达式i++和++i的值。表达式的值i++为i,++i为i+1。所以在for里没有区别。