9. What is ‘sum’ after the following loop terminates?bint sum = 0;
int item = 0;
do 
{
   item++;
   sum += item;
   if (sum > 4) sum = sum/2;
}
while (item < 5);
最好能告诉为什么,谢谢

解决方案 »

  1.   

    sum = (((1+2+3)/2 + 4)/2 + 5)/2 = 4另外,楼主的结贴率貌似是0......
      

  2.   

    很容易,楼主自己debug下就可以了。
      

  3.   


    //因为if(sum > 4)没有加括号,所以这句话没用,后面语句总会执行...、
     循环1次
    item = 1
    sum = 1             //sum += item 就是  sum = sum + item
    sum / 2 = 0.5 = 0   //int 型省略小数点后的数
      循环2次
    item = 2
    sum = 2.5
    sum / 2 = 1.25 = 1
     循环3次
    item = 3
    sum = 4
    sum / 2 = 2
     循环4次
    item = 4 
    sum = 6
    sum / 2 = 3
      循环5次 //注意,do while 是先执行再判断,所以有第五次
    item = 5
    sum = 8
    sum / 2 = 4都是基础,好好看看书