直接上代码,
- Java code
//newDemo1.java//关于方法可变参数和数组输出方法foreach的练习public class newDemo1{ public static void main(String args[]) { System.out.print("不传递阐述(fun()):"); fun(); System.out.print("\n传递1个参数(fun(1)):"); fun(1); System.out.print("\n传递5个参数(fun(1,2,3,4,5)):"); fun(1,2,3,4,5); useForEach(); } public static void fun(int...arg) //这里为什么定义为int...arg[]之后,编译出错误! { for(int i:arg) //使用foreach输出 System.out.print(i+" "); }/* public static void fun(int...arg) //没有定义为数组,为什么下面还能有arg[i] { for(int i=0;i<arg.length;i++) //不使用foreach输出 System.out.print(arg[i]+" "); }*/ public static void useForEach() { int x[]={1,2,3,4,5,6,7,8,9}; //如果上面正确的话,这儿应该作何解释? System.out.println("\n参照"); for(int i:x) System.out.print(i+" "); }}
------解决方案--------------------
这里为什么定义为int...arg[]之后,编译出错误!
参数中int...arg就表示一个1维数组,不能通过这种方式定义二维数组
------解决方案--------------------
arg本身就是数组,所以不需要写[],也能直接用arg[i]
int x[]={1,2,3,4,5,6,7,8,9};
只是 int[] x = {1,2,3,4,5,6,7,8,9}; 的一种变通写法
只有在声明的时候能这样变通