黑马程序员技术交流社区

标题: 输出结果的纠结 [打印本页]

作者: songkaihua    时间: 2014-12-16 22:54
标题: 输出结果的纠结
class Demo
{
  public static void main(String[] args)
  {
   int a = 10;
   int b = 20;
   System.out.println("a:"+a+",b:"+b);a=10,b=20
   change(a,b);  a=20,b=40
   System.out.println("a:"+a+",b:"+b);
   int[] arr = {1,2,3,4,5};  
   change(arr);
   System.out.println(arr[1]);8
  }
  public static void change(int a,int b)        
  {
   System.out.println("a:"+a+",b:"+b);   
   a = b;
   b = a + b;
   System.out.println("a:"+a+",b:"+b);a=b;b=2b
  }
  public static void change(int[] arr)
  {
   for(int x=0; x<arr.length; x++)
   {
    if(arr[x]%2==0)
    {
     arr[x]*=2;
    }
   }
  }
}
看视频不懂……

作者: 抬头45°    时间: 2014-12-16 23:17
System.out.println(arr[1]);  这句应该输出4
因为
if(arr[x]%2==0)
    {
     arr[x]*=2;
    }
这句arr[x]%2==0 是求余运算比较,只有2,4满足,2就代表arr[1],
arr[x]*=2; 这句是乘等于,你看以看做 arr[1]=arr[1]*2   就是4=2*2
上边的就是个赋值,你在看看运算符那把
作者: songkaihua    时间: 2014-12-17 00:48
抬头45° 发表于 2014-12-16 23:17
System.out.println(arr[1]);  这句应该输出4
因为
if(arr[x]%2==0)

我编译运行出来时
a:10,b:20

a:10,b:20

a:20,b:40

a:10,b:20
最后一个结果不懂
作者: zmhlnrs    时间: 2014-12-17 12:46
最后一个是4吧  arr[1]=2
arr[1]因为满足条件if(arr[1]%2==0)
所以输出 arr[x]*=2;就是arr[1]=arr[1]*2;所以答案是4;

作者: songkaihua    时间: 2014-12-20 00:30
zmhlnrs 发表于 2014-12-17 12:46
最后一个是4吧  arr[1]=2
arr[1]因为满足条件if(arr[1]%2==0)
所以输出 arr[x]*=2;就是arr[1]=arr[1]*2; ...

我没纠结最后那个答案!是倒数第二个!不过现在懂了!论坛里的大神多!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2