public class demo1{
public static void main(String[] args){
int i,sum = 0;
for (i = 0; i < 100 ;i ++)
{
sum = sum++;
}
System.out.println(sum);
}
}
为什么值为0
而C里面是100 ,求运算过程,原理!!
------最佳解决方案--------------------------------------------------------
int i = 0;
i = i++;
System.out.println(i);
//输出0
案例讲解:
i的初始值为0,在i = i++ 中首先取得i的值(0)作为将要赋值的表达式的值,然后进行++操作,完成后i的值为1,最后进行赋值操作,注意,赋值不是赋i的值(1),而是赋表达式的值(0)。所以赋值完成后i的值又由(1)变为了(0)
不知道说清楚了没,重点:赋值操作是赋表达式的值
------其他解决方案--------------------------------------------------------
同理
int i = 0;
i = i++ + 2;
System.out.println(i);
//输出2
讲解:
i的初始值为0,在i = i++ + 2 中首先取得i的值(0)作为i++表达式(假设此表达式命名为x)的值,然后进行++操作,完成后i的值为1,然后计算x+2的值也就是(0+2),最后将(0+2)赋值给i。所以赋值完成后i的值又由(1)变为了(2)
------其他解决方案--------------------------------------------------------
如果原理是这样的,我觉得我了解了,谢谢你,哈哈!!!
------其他解决方案--------------------------------------------------------
http://www.ticmy.com/?p=43
------其他解决方案--------------------------------------------------------
public class Demo1 {
public static void main(String[] args) {
int sum=0;
int m=0;
int b=0;
int i;
for (i = 0; i < 100; i++) {
m=sum;
b=m+1;
sum = m;
}
System.out.println(sum);
}
}
自增的时候没有没有应用到后面的复制之中
------其他解决方案--------------------------------------------------------
以求0-100之间的和为例
第一种循环代码的主方法
public static void main(String [] args)
{
int i = 0;
int sum = 0;
while(i <= 100)
{
sum +=i;
i +=1;
}
System.out.println("The result is sum:"+sum);
}
第二种循环代码的主方法
public static void main(String [] args)
{
int i = 0;
int sum = 0;
do
{
sum +=i;
i +=1;
}
while(i<=100);
System.out.println("The result sum :"+sum );
}
第三种循环的代码的主方法
public static void main(String [] args)
{
int sum = 0;
for(int i = 0 ;i<=100;i++ )
{
sum +=i;
}
System.out.println("The result sum:"+sum);