A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

只有当传入的是数组中最后一个元素时,才能得到它的索引,传入数组中其它元素返回的都是-1,这是哪里出问题了,还请各位大神多多指教

class Test
{
        public static void main(String[] args)
        {
                int[] array={1,2,4,,56,98};
                getIndex(array,2);//结果-1
                getIndex(array,56);//结果-1
                getIndex(array,98);//结果5

        }
        public static int getIndex(int[] arr,value)//求数组中元素相对应的索引
        {
                for(int i=0;i<arr.length.i++)
                {
                        if(arr[i]=value)
                                return i;
                        else
                                reurn -1;
                }
        }       


}

9 个回复

倒序浏览
把else取了,把return -1放外面。就对了。
回复 使用道具 举报
= 是赋值  你应该使用 ==
回复 使用道具 举报
if(arr[i]=value){
    return i;
} else{
    reurn -1;     
}         
编码一定要规范              
回复 使用道具 举报

if(arr[i]==value){
    return i;
} else{
    reurn -1;     
}         
编码一定要规范  
回复 使用道具 举报
if后面跟的判断语句的值应该是个boolean类型的值吧
回复 使用道具 举报
return -1 要放在外面,要不然会报错,还有if里面要用==,基本类型==是比较值,引用类型是默认比较地址值;=在Java中是赋值的意思
回复 使用道具 举报
貌似你的程序跟题意没有丝毫关系啊  你这是查的传进方法中的value在哪个索引位置
回复 使用道具 举报
class Test
{
        public static void main(String[] args)
        {
                int[] array={1,2,4,56,98};
                System.out.println(getIndex(array,2));//结果1
                System.out.println(getIndex(array,56));//结果3
                System.out.println(getIndex(array,98));//结果4
        }
        public static int getIndex(int[] arr,int value)//求数组中元素相对应的索引
        {
                for(int i=0;i<arr.length;i++)
                {
                        if(arr[i]==value)
                                return i;                  
                }
                return -1;
        }        
}
给你重新写了一下,不知道是不是你要问的意思,输出结果是数组下标。
回复 使用道具 举报
注意返回值的位置!:)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马