请问这两个程序为什么结果会不一样
程序1
public class Demo
{public static void main(String[] args)
{int a=1;
int sum=0;
int odd=1;
int i;
for(odd=1;odd<=20;odd++)
{for( i=1;i<=odd;i++)
a=2*a;
sum=sum+a;
System.out.println(sum+"sum");
}
}
}
输出结果为
2sum
10sum
74sum
1098sum
33866sum
2131018sum
270566474sum
....
程序2
public class Demo
{public static void main(String[] args)
{int a;
int sum=0;
int odd=1;
int i;
for(odd=1;odd<=20;odd++)
{for(a=1, i=1;i<=odd;i++)
a=2*a;
sum=sum+a;
System.out.println(sum+"sum");
}
}
}
输出结果为
2sum
6sum
14sum
30sum
62sum
126sum
254sum
510sum
1022sum
2046sum
4094sum
8190sum
16382sum
32766sum
65534sum
131070sum
262142sum
524286sum
1048574sum
2097150sum
不一样的只有a的赋值的位置