黑马程序员技术交流社区

标题: 请看看这段代码的错误在哪里 [打印本页]

作者: 完美恋爱    时间: 2013-10-26 10:52
标题: 请看看这段代码的错误在哪里
class Demo
{
        public static void main(String[] args)
        {
                array();
        }

        public static void array()
        {
                int[] arr = new int[]{1,2,3,4,5,6};

                for(int x = 0; x < y; x++)
                {
                        System.out.println("arr["+x+"]"+"="+arr[x]);
                }
        }
}
错误提示是:无法将 Demo 中的 array(int) 应用于 ()
                     array();
请问这段代码哪里有错误啊?


作者: 完美恋爱    时间: 2013-10-26 10:56
错误我发现了,谁能解释一下这个错误提示是什么意思?
作者: 1961993790    时间: 2013-10-26 11:04
class Demo {
        public static void main(String[] args) {
                array(6);
        }

        public static void array(int y) {
                int[] arr = new int[] { 1, 2, 3, 4, 5, 6 };

                for (int x = 0; x < y; x++) {
                        System.out.println("arr[" + x + "]" + "=" + arr[x]);
                }
        }
}
你好,你代码主要错误:没有定义int y;这个变量。
解决方法有三种:
1,在arry(){}方法体内定义y变量定义初始化数组。
2,在arry(int y){}方法中定义一个int类型参数,在main函数中调用该arry(6)方法中传入形参.
3,在arry(){}方法体内中的
for (int x = 0; x < 6; x++) {
System.out.println("arr[" + x + "]" + "=" + arr[x]);
}
x变量小于一个整数,也就是说把y变量去掉,定义一个整数常量。

希望对你有帮助。
作者: mayor125    时间: 2013-10-26 11:09
你那个for循环条件中的y是多少?首先你没有给y一个具体的值,x<y就没法判断条件到底成不成立,就无法进入循环。或者你可以把y改成arr.length表示数组长度。for循环条件满足了,就打印输出数组中的每个元素的值,肯定就不会报错了...
作者: 完美恋爱    时间: 2013-10-26 12:22
1961993790 发表于 2013-10-26 11:04
class Demo {
        public static void main(String[] args) {
                array(6);

谢谢你的详细解答,那请问知道错误提示是什么意思吗?
作者: 1961993790    时间: 2013-10-26 12:35
错误提示为:y cannot be resolved to a variable (意思就是说:y是一个不能被解决的变量)。
学习编程,英语很重要,希望能帮助你。
作者: 完美恋爱    时间: 2013-10-26 13:18
1961993790 发表于 2013-10-26 12:35
错误提示为:y cannot be resolved to a variable (意思就是说:y是一个不能被解决的变量)。
学习编程,英 ...

不是那个提示,是这个,请看:
错误提示:无法将 Demo 中的 array(int) 应用于 ()
               array();
作者: 1961993790    时间: 2013-10-26 13:25
完美恋爱 发表于 2013-10-26 13:18
不是那个提示,是这个,请看:
错误提示:无法将 Demo 中的 array(int) 应用于 ()
               array( ...

意思就是说:这个array(int y){}方法中应该定义一个变量;
显然你传递参数的时候括号中只定义了int 类型而没有变量这样直接导致
编译错误。如果还没有讲清楚可以加我qq:1961993790
作者: 完美恋爱    时间: 2013-10-26 13:45
1961993790 发表于 2013-10-26 13:25
意思就是说:这个array(int y){}方法中应该定义一个变量;
显然你传递参数的时候括号中只定义了int 类 ...

了解啦!thank you!
作者: 起猿    时间: 2013-10-26 13:57
其实你这个错误提示的意思就是说在无法array()无法调用Demo类中array(int)方法。实际上按你这个程序来讲。因该提示的错误是在Demo类中找不到变量y。是因为你程序中用到了变量y却没有给y定义变量类型。规范点的话,还要初始化值。




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