++i与i++有什么区别? ++i:i先加1再取得i的值i++:先取得i的值,再加1. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 但我看书里面的for语句:for(int i;i<100;i++),要是用++i行吗? public class i{ public static void main(String[] args) { int i=1; int n; //n=i++; //先把i的值付给n,然后i自加1; n=++i; //i先自加1,然后把所得值付给n; System.out.println(n); }}看看就知道为什么了。 for语句括号里最后那个i++或++i都无所谓的 大家看看这个------在C和java中如果i=7; j=++i*i++;结果都是输出i=9,j=64;而当i=7;j=++i*++i;的时候,C输出的是i=9,j=81;而java输出的则是i=9,j=72;为什么?!这是在C版块争论了很久的一个话题,我一直在思考,就是不明白,还请高手指教! JAVA里应该是这样的吧j=(++i)*(++i)j= a * ba=8 而 b=9所以 在for(int i;i<100;i++)最好用++i,功能一样,但是效率却不一样 ++i:i先加1再取得i的值例如: int i=4; int j=++i;得到: j为5,i为5;i++:先取得i的值,再加1. 例如: int i=4; int j=i++;得到: j为4,i为5; 在for(int i;i<100;i++)最好用++i,功能一样,但是效率却不一样。 那个效率高,为什么呢? 我运行过,在Java中,如果i=7,(++i)*(i++)和++i*i++结果都是64,i++*++i和(i++)*(++i)结果都是63,这是什么原因呢? 在C和java中如果i=7; j=++i*i++;结果都是输出i=9,j=64;而当i=7;j=++i*++i;的时候,C输出的是i=9,j=81;而java输出的则是i=9,j=72;为什么?!这是在C版块争论了很久的一个话题,我一直在思考,就是不明白,还请高手指教!i=7;j=++i*i++ //(++i -->i=8) * (i++ -->先取i=8,再计算i+1最终i=9) 8*8=64j=++i*++i//(++i -->i=8) * (++i -->先计算i+1的i=9再取i) 8*9=72 c我不太熟悉 我估计c中的i取得都是这个表达是中所表示的i最终值j=++i*i++ //(++i -->i=8) * (i++ -->先取i=8,这个表达式中i=8) 8*8=64j=++i*++i//(++i -->i=8) * (++i -->先计算i+1的i=9再取i,这个表达式中i=9) 9*9=81 那请问在for语句中,用++i效率高还是i++效率高呢? 在表达式中:++i:i先加1再取得i的值i++:先取得i的值,再加1单独运算:i++,++i是一样的结果。效率?要这么细么??为什么?我只知道++是自由向左结合的?符合逆波兰式?所以效率高?没有必要这么细吧。 求助!!!用swing画图时出现的一个问题 是不是应该用throws声明一下? dbswing中的JdbComboBox控件和表格JdbTable绑定问题 编译是出现java.lang.NoClassDefFoundError 关于JFileChooser 输入文件名的问题 请问怎么在一个container里同一位置加入两个jpanel,然后通过setvisible显示? 反转一个字符串 谁能讲讲flush执行失败的原因是什么啊! 小弟刚刚接触java,就遇到一个严重的问题,大家帮帮忙了。 请教关于下面这段代码 j2sdk+UtralEdit 怎么配置 征集题目:招聘企业系统管理员
{
public static void main(String[] args)
{
int i=1;
int n;
//n=i++; //先把i的值付给n,然后i自加1;
n=++i; //i先自加1,然后把所得值付给n;
System.out.println(n);
}
}
看看就知道为什么了。
------
在C和java中
如果i=7;
j=++i*i++;
结果都是输出i=9,j=64;
而当i=7;j=++i*++i;的时候,C输出的是i=9,j=81;而java输出的则是i=9,j=72;
为什么?!
这是在C版块争论了很久的一个话题,我一直在思考,就是不明白,还请高手指教!
例如:
int i=4;
int j=++i;
得到: j为5,i为5;
i++:先取得i的值,再加1.
例如:
int i=4;
int j=i++;
得到: j为4,i为5;
那个效率高,为什么呢?
如果i=7;
j=++i*i++;
结果都是输出i=9,j=64;
而当i=7;j=++i*++i;的时候,C输出的是i=9,j=81;而java输出的则是i=9,j=72;
为什么?!
这是在C版块争论了很久的一个话题,我一直在思考,就是不明白,还请高手指教!
i=7;
j=++i*i++ //(++i -->i=8) * (i++ -->先取i=8,再计算i+1最终i=9) 8*8=64
j=++i*++i//(++i -->i=8) * (++i -->先计算i+1的i=9再取i) 8*9=72
我估计c中的i取得都是这个表达是中所表示的i最终值
j=++i*i++ //(++i -->i=8) * (i++ -->先取i=8,这个表达式中i=8) 8*8=64
j=++i*++i//(++i -->i=8) * (++i -->先计算i+1的i=9再取i,这个表达式中i=9) 9*9=81
++i:i先加1再取得i的值
i++:先取得i的值,再加1单独运算:i++,++i是一样的结果。效率?要这么细么??为什么?
我只知道++是自由向左结合的?符合逆波兰式?所以效率高?
没有必要这么细吧。