刚刚自学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类型的。
其实你有很多种方法避开这个问题^--^