黑马程序员技术交流社区
标题:
请问高新技术里这个代码是怎么运算的
[打印本页]
作者:
我叫MT
时间:
2014-2-13 23:50
标题:
请问高新技术里这个代码是怎么运算的
本帖最后由 我叫MT 于 2014-2-14 13:14 编辑
class Noname1
{
public static void main(String[] args)
{
System.out.println(add(2,3));
System.out.println(add(2,3,5));
}
public static int add(int x,int ... args)
{
int num = x;
for(int i=0;i<args.length;i++)
{
num += args[i];
}
return num;
}
}
复制代码
结果是5和10,怎么算出来的?
主要是num在初始化时值是什么?
作者:
630681386@qq.co
时间:
2014-2-13 23:58
初始化的时候就赋值了2,是通过方法传值传过来的,后面传了一个数组,这就是jdk1.5的可变参数
作者:
我叫MT
时间:
2014-2-14 00:08
630681386@qq.co 发表于 2014-2-13 23:58
初始化的时候就赋值了2,是通过方法传值传过来的,后面传了一个数组,这就是jdk1.5的可变参数 ...
当第一次运行到args
也就是运行到args[0]时这个args[0]是多少
作者:
我叫MT
时间:
2014-2-14 00:13
630681386@qq.co 发表于 2014-2-13 23:58
初始化的时候就赋值了2,是通过方法传值传过来的,后面传了一个数组,这就是jdk1.5的可变参数 ...
我觉得是不是从int x 后面的值开始的?也就是int...args这?
作者:
630681386@qq.co
时间:
2014-2-14 00:21
public static void main(String[] args)
{
System.out.println(add(2,3));
System.out.println(add(2,3,5));
}
public static int add(int x,int ... args)
{
int num = x;
for(int i=0;i<args.length;i++)
{
System.out.println(args[i]);这里加一句代码验证一下就好
num += args[i];
}
return num;
}
}
复制代码
循环里加句输出的代码,你分析一下,事实证明是从后面开始的
作者:
榨菜
时间:
2014-2-14 01:48
初始化的时候num就是等于x 2. 你可以把可变参数看成一个int[] 数组类型
作者:
为爱算了吧
时间:
2014-6-11 22:07
基石啥地方哈是否健康
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2