public static void main(String[] args){
int j = 0;
for(int i = 0; i < 100; i++)
j = j++;
System.out.println(j);
}
该问题最终输出结果为0,分析 j = j ++ 的过程可以从以下几点分析。
1、首先 ++ 操作符的优先级高于 = 的优先级,所以会先执行 j ++
2、j ++ 是后置自增符,可以将 j ++ 分解成:
temp = j
j = j + 1
然后执行赋值操作,j = temp
总结:
因为在计算过程中,使用了Java中间变量缓存机制。在java中,执行自增运算时,会为每一个自增操作分配一个临时变量,如果是前缀加(++i),就会“先自加
1
后赋值(给临时变量)”;如果是后缀加(i++),
就会“先赋值(给临时变量)后自加
1
”。运算最终使用的,并不是变量本身,而是被赋了值的临时变量。
前置++和后置++只是决定了临时变量 j 的值,因为本次运算是临时变量参与的,本次虽然将J的值加一了但是并没有参与运算,正常情况下,下次再用j的时候j就比之前大一了,不过j = j ++ 的情况为,
即 method_1方法中的
[java] view plaincopyprint?
j = j++;
等同于:
[java] view plaincopyprint?
int
temp = j;
j = j +
1
;
j = temp;
method_2方法中的
[java] view plaincopyprint?
j = ++j;
等同于:
[java] view plaincopyprint?
j = j +
1
;
int
temp = j;
j = temp;
相关推荐
libstdc++-4.8.5-44.el7.i686.rpm
Java循环的一个小问题,java中for(int i= 0; i<=10;i=i++)System.out.print(i);为什么无限输出0
++i,i++,--i,i--终结-----即为对++i等的认识和难题的求解,如int j=++i+(++i)+(++i)+(++i);
compat-libstdc++-33-3.2.3-72.el7.i686.rpm
compat-libstdc++-33-3.2.3-68.i686
i++) for (j=1;j<=i;j++) x++; 参考答案: i为1时,j值只能取1,语句执行1次; i为2时,j可取1或2,语句执行2次; …… i为n时,j可取1,2,…,n,语句执行n次。 语句频度=1+2+…+n=。 i=0; j=1; while (i+j<=n){ x++;...
java代码-int i = 0; int s = (++i)+(i--)+i; System.out.println(s);
red hat 下安装g++,使用yum install ** 安装失败,直接使用安装包安装。
#include "math.h"main(){ int m,i,k,h=0,leap=1;...i++) if(m%i==0) {leap=0;break;} if(leap) {printf("%-4d",m);h++; if(h==0) printf("\n"); } leap=1; } printf("\nThe total is %d",h);}
libgcc_s.so.1 is needed by libstdc++-4.4.7-3.el6.i686 libgcc_s.so.1(GCC_3.0) is needed by libstdc++-4.4.7-3.el6.i686 libgcc_s.so.1(GCC_3.3) is needed by libstdc++-4.4.7-3.el6.i686 libgcc_s.so.1(GCC...
libstdc++-4.4.7-11.el6.i686.rpm 解决了libstdc++so.6.0
compat-libstdc++-33-3.2.3-68.1.i686.rpm
在本文中,我们报告了Nf = 2 + 1 + 1晶格QCD在I = 3/2通道中π-K系统的s波散射长度的结果。 该计算基于欧洲扭曲质量协作组织产生的轨距构型,在三个晶格间距值下,介子质量范围约为230到450 MeV。 我们的主要结果为M...
i++) { c[i] = new int[n+1]; } for(i=0;i<=m;i++) {c[i][0]=0;b[i][0]=0;} for(i=0;i<=n;i++) {c[0][i]=0;b[0][i]=0;} for(i=1;i<=m;i++) for(j=1;j<=n;j++) if(s1[i-1]==s2[j-1]) { c[i][j]=c...
一个很简单的冒泡排序算法 void BubbleSort(double a[],int n)...i++) { flag=0; for(j=0;j<n-1;j++) { if(a[j]>a[j+1]) { flag=1; temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } }
i+=1 print(sum-a) 第二种: a=1 b=-3 sum1=0 sum2=0 while a<=101and b>=-99: sum1+=a sum2+=b a+=+4 b+=-4 print(sum1+sum2+101) 第三种: print(sum(range(1,102,4))-sum(range(3,102,4))) 自我反省:...
安装虚拟机需要使用的包,可能由于您的版本不同需要及时下载改rpm包,进行更新,解决bug
同理得 Res[f(z),-1]=1/4, Res[f(z),i]= Res[f(z),-i]=-1/4 故 I=0 (1分) 注:本题也可利用留数定理来计算。 3. 解答: f(z)= (1分) 在圆环域:1|z| 内 ,有 (4分) (4分) 故 f(z)= (1分) 4. 解答: 被积函数f...
我们使用N f = 2 +1 + 1扭曲质量晶格QCD给出了I = 2ππ散射长度的结果,其中包含三个晶格间距值和一个pion质量值范围。 由于使用了拉普拉斯(Laplacian)重糖苷涂片,与以前的点阵研究相比,我们的统计误差得以减少...
i++) { for(j=0;j<=l;j++) { if((i+j)==k-1) { temp+=(m[l-i]-48)*(n[l-j]-48); } } } v=(temp+t)%10; s[k]=v; t=(temp+t)/10; k++; } temp=0; for(i=0;i<=l;i++) { ...