黑马程序员技术交流社区
标题:
关于“数组查找”的一点小问题
[打印本页]
作者:
王桂丽
时间:
2012-7-7 21:26
标题:
关于“数组查找”的一点小问题
我编写了一个程序:
class Texst
{
public static void main(String[] args)
{
int []arr={4,6,7,9,0,3};
int DaShu=getDaShu(arr,9);
System.out.println(DaShu);
}
public static int getDaShu(int[] arr,int x)
{
for(int y=0,y<arr.length;y++)
{
if (arr[y]==arr[x])
return x;
}
}
return -1;
}
为什么运行结果总是提示错误:file:///C:/Users/samsung/AppData/Roaming/Tencent/Users/2531988876/QQ/WinTemp/RichOle/3KS%7DRFHKZI%7B]BJO7630K@FF.jpg
这种情况是怎么回事?
作者:
朱东方
时间:
2012-7-7 21:35
class Text1
{
public static void main(String[] args)
{
int []arr={4,6,7,9,0,3};
int DaShu=getDaShu(arr,9);
System.out.println(DaShu);
}
public static int getDaShu(int[] arr,int x)
{
for(int y=0;y<arr.length;y++) //y=0后面是“;”分号,而不是逗号。
{
if (arr[y]==x) //这也得改。
return y;
}
return -1; //你return位置放错了。
}
}
复制代码
你是不是想获取9在数组中的位置啊。
说实话,哥们你这个程序写的乱七八糟啊。
作者:
康子龙
时间:
2012-7-7 21:59
你的return-1写错地方了,应该放到getDaShu的方法体内
作者:
康子龙
时间:
2012-7-7 22:01
同一楼,我也觉着你这程序写的有问题。。。。建议你说下你的需求然后我们帮你分析下你的程序哪里需要修改下
作者:
张华廷
时间:
2012-7-7 22:10
public class Demo {
public static void main(String[] args)
{
int[] arr={4,6,7,9,0,3};
int DaShu=getDaShu(arr,9);
System.out.println(DaShu);
}
public static int getDaShu(int[] arr,int x)
{
for(int y=0;y<arr.length;y++)
{
if (arr[y]==x)//方法中是int,怎么到数组中了
return x;
}
return -1;//问题很容易搞的,哥们好好学
}
}
作者:
谭培龙
时间:
2012-7-7 22:12
class Demo
{
public static void main(String[] args)
{
int []arr={4,6,7,9,0,3};
int DaShu=getDaShu(arr,9);
System.out.println("["+DaShu+"]");
}
public static int getDaShu(int[] arr,int x)
{
for(int y=0;y<arr.length;y++)//这里不是,是;
{
if (arr[y]==x)
return y;
}
return -1;//return在里面
}
}
不知道你是不是求9的角标 如果需求是9是否存在请看1楼
作者:
陈冲
时间:
2012-7-7 22:20
本帖最后由 陈冲 于 2012-7-7 22:21 编辑
class Texst
{
public static void main(String[] args)
{
int []arr={4,6,7,9,0,3};
int DaShu=getDaShu(arr,9);
System.out.println(DaShu);
}
public static int getDaShu(int[] arr,int x)
{
for(int y=0;y<arr.length;y++)
{
if (arr[y]==x) //如果你上边 DaShu=getDaShu(arr,9) 中的9不是表示数组位置的话,这里应该改成arr[y]==x,因为你定义的数组只有6个元素,arr[9]并不存在
return x;
}
return -1; //return -1;放到getDaShu函数体内,放在外边肯定会报错
}
}
复制代码
感觉很混乱啊,起码每行的缩进都弄好了啊,要不然自己看的时候都很累
作者:
董深义
时间:
2012-7-7 22:28
public class Demo {
public static void main(String[] args)
{
int[] arr={4,6,7,9,0,3};
int DaShu=getDaShu(arr,9);
System.out.println(DaShu);
}
public static int getDaShu(int[] arr,int x)
{
for(int y=0;y<arr.length;y++)
{
if (arr[y]==x)//注意你要比较的x,已经是个具体的整型值,而不是数组的角标
return y;//返回所查找数在数组中的角标值,返回x,那这个函数不是无意思了,x是你赋值好的
}
return -1;//这个语句要放在getDashu(,)内,目的是在数组没找不到参数x时,返回-1
}
}
作者:
邵阳
时间:
2012-7-7 22:32
我怀疑你的java环境变量都匹配错啦。
作者:
王桂丽
时间:
2012-7-7 22:40
对,需求就是求9的角标
作者:
陈冲
时间:
2012-7-7 22:52
2531988876 发表于 2012-7-7 22:40
对,需求就是求9的角标
class Texst
{
public static void main(String[] args)
{
int []arr={4,6,7,9,0,3};
int DaShu=getDaShu(arr,9);
System.out.println(DaShu);
}
public static int getDaShu(int[] arr,int x)
{
for(int y=0;y<arr.length;y++)
{
if (arr[y]==x) //如果你上边 DaShu=getDaShu(arr,9) 中的9不是表示数组位置的话,这里应该改成arr[y]==x,因为你定义的数组只有6个元素,arr[9]并不存在
return y;//如果要求9的角标,这里应该返回y,因为在if(arr[y]==x)中判断出了以y为角标的元素值为9
}
return -1; //return -1;放到getDaShu函数体内,放在外边肯定会报错
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2