java中Return返回值的用法

刚刚自学Java到面向对象的概念,使用调用方法,但是这个例子需要返回一个int值一直报错。求大神解惑。

public class Return001 {

public static void main(String[] args) {
    int b=Ka();
        System.out.println(b);
}
public static int Ka(){
    int[] b={1,2,3,4,5,6};
    int a=b[4];
    for(int i=0;i<b.length;i++){
        if(b[i]==a);

            return i;
    }
}

}
报错,需要返回一个int类型的值。

public static void main(String[] args) {
    int b=Ka();
        System.out.println(b);
}
public static int Ka(){
    int[] b={1,2,3,4,5,6};
    int a=b[4];
    int index = 0;
    for(int i=0;i<b.length;i++){
        if(b[i]==a);

            index = i;
    }
    return index;
}

输出结果:5

public static int Ka()
{
    int[] b={1,2,3,4,5,6};
    int a=b[4];
    for(int i=0;i<b.length;i++)
    {
        if(b[i]==a);

            return i;
    }

    return 0;
 }


public static void main(String[] args) 

{
    int b=Ka();
        System.out.println(b);
}

少了一个reutnt 的返回值。

main函数是程序的入口、你在其他位置写方法的返回值、main函数没有返回值!

很明显啊,ka需要返回值,而你只有if里面才有return ,如果达不到if条件就没有return 当然报错

public static int Ka(){
int[] b={4,2,1,3,5,6};
int a=b[4];
int j =0;
for( int i = 0;i<b.length;i++){
if(b[i]==a)
j=i;
}
return j;
}

for(int i=0;i<b.length;i++){
if(b[i]==a);
return i;
}
这里你想表达的意思if(b[i]==a)返回i;//位置下标
但是你没在循环外面返回,导致错误。
改为
public static int Ka(){
int[] b={1,2,3,4,5,6};
int a=b[4];
int i;
for(i=0;i<b.length;i++)
if(b[i]==a)
break;
return i;
}
}
这样就可以了

楼上正解,在循环外还要放一个

if后面加个else语句,在else语句里用return返回一个int类型的值应该也不会报错。

if完了之后来个else,ranhou return返回一个int类型的值你来试一把

public static int Ka(){
int[] b={1,2,3,4,5,6};
int a=b[4], i=0;
for(;i<b.length && b[i]!=a; i++);
return i;
}

谢谢大家的解答,统一回复一下,谢谢大家!

如果if语句没进去,不就没返回值了吗?肯定编译不过。
方法最后加个return

for循环里面return了,外面没有return,需要定义一个变量,将i的值保存,或者将i定义到for循环外面,直接返回。你这个是打印数组,可以直接在方法里面打印啊,没必要返回int,直接返回空值不就好咯

if外面也需要一个return,你那个方法返回值是int类型的。

其实你有很多种方法避开这个问题^--^