黑马程序员技术交流社区
标题:
有关可变参数的问题
[打印本页]
作者:
从前有个人
时间:
2013-12-2 14:53
标题:
有关可变参数的问题
本帖最后由 从前有个人 于 2013-12-2 15:03 编辑
class Temptest {
public static void main(String[] args){
int[] arr = new int[]{1,2,3};
show1(1,2,3);
show2(arr);
}
static void show1(int x, int... args){
for(int i = 0; i <args.length; i++)
System.out.print(args
);
System.out.println("");
}
static void show2(int arr[]){
for(int i = 0; i <arr.length; i++ )
System.out.print(arr
);
}
}
运行结果如下:
23
123
为什么show1方法会少一个1呢?
作者:
从前有个人
时间:
2013-12-2 15:04
谁能告诉我怎么删帖子呢……
作者:
25343215
时间:
2013-12-2 15:08
楼主传入参数,show1(1,2,3);时,int...args 相当于一个int类型的数组(int[] args),这时数组里面的元素是2,3.又因为,方法里面,没有用到int x,所以x=1没有输出。
static void show1(int x, int... args){
for(int i = 0; i <args.length; i++)
System.out.print(args);
System.out.println("");
}
作者:
hurryup
时间:
2013-12-2 15:37
可变参数进行循环,只循环可变的,不可变的不用循环代码修改如下:
class Temptest {
public static void main(String[] args){
int[] arr = new int[]{1,2,3};
show1(1,2,3);
show2(arr);
}
static void show1(int x, int... args){
System.out.print(x);//这就是丢失的1
for(int i = 0; i <args.length; i++)
System.out.print(args[i]);//数组的0角标是2,1角标是3
System.out.println("");
}
static void show2(int arr[]){
for(int i = 0; i <arr.length; i++ )
System.out.print(arr[i]);
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2