如何修复错误:/AccountDemo.java:53:error:missing return statement}^1错误

如何修复错误:/AccountDemo.java:53:error:missing return statement}^1错误,java,arrays,Java,Arrays,我得到一个错误,如下所示: /AccountDemo.java:53: error: missing return statement } ^ 1 error 我什么都试过了。我如何解决这个问题 类别帐户 { 私有整数; 公共整数getNumber { 返回此.number; } 公共无效集合编号打印编号1 { 数字=数字1; } } 公共类AccountDemo{ 公共静态无效字符串[]args{ 账户[]objArray=新账户[5]; objArray[0]。设置编号7; obj

我得到一个错误,如下所示:

/AccountDemo.java:53: error: missing return statement   }   ^ 1 error
我什么都试过了。我如何解决这个问题

类别帐户 { 私有整数; 公共整数getNumber { 返回此.number; } 公共无效集合编号打印编号1 { 数字=数字1; } } 公共类AccountDemo{ 公共静态无效字符串[]args{ 账户[]objArray=新账户[5]; objArray[0]。设置编号7; objArray[1]。设置编号3; objArray[2].设置编号5; objArray[3]。设置编号4; objArray[4]。设置编号9; int accountres=searchAccountByNumberobjArray,63; 首次搜索后的System.out.printlnOutput:+accountres; int accountres1=searchAccountByNumberobjArray,4; 第二次搜索后System.out.printlnOutput:+accountres1; } 公共静态int searchAccountByNumberAccount[]对象数组,int s { int i=0;
对于i=0;i我通过给它分配一个变量而不是直接返回它来解决这个问题,看起来好像它起作用了

 class Account {

    private int number;

    public int getNumber() {
        return this.number;
    }

    public void setNumber(int number1) {
        number = number1; }

}public class AccountDemo {

    public static void main(String[] args) {

        Account[] objArray = new Account[5];

        objArray[0].setNumber(7);
        objArray[1].setNumber(3);
        objArray[2].setNumber(5);
        objArray[3].setNumber(4);
        objArray[4].setNumber(9);

        int accountres = searchAccountByNumber(objArray, 63);
        System.out.println("Output after first search: " + accountres);

        int accountres1 = searchAccountByNumber(objArray, 4);
        System.out.println("Output after second search: " + accountres1);
    }

    public static int searchAccountByNumber(Account[] objArray, int s) {
        int finalreturn = 0;
        int i = 0;
        for (i = 0; i < 5; i++) {
            if (objArray[i].getNumber() == s) {
                finalreturn = i;
            } else {
                finalreturn = -1;
            }
        }
        return finalreturn;
    }
}

祝你好运!

我通过给它分配一个变量而不是直接返回它来解决这个问题,看起来好像它能工作

 class Account {

    private int number;

    public int getNumber() {
        return this.number;
    }

    public void setNumber(int number1) {
        number = number1; }

}public class AccountDemo {

    public static void main(String[] args) {

        Account[] objArray = new Account[5];

        objArray[0].setNumber(7);
        objArray[1].setNumber(3);
        objArray[2].setNumber(5);
        objArray[3].setNumber(4);
        objArray[4].setNumber(9);

        int accountres = searchAccountByNumber(objArray, 63);
        System.out.println("Output after first search: " + accountres);

        int accountres1 = searchAccountByNumber(objArray, 4);
        System.out.println("Output after second search: " + accountres1);
    }

    public static int searchAccountByNumber(Account[] objArray, int s) {
        int finalreturn = 0;
        int i = 0;
        for (i = 0; i < 5; i++) {
            if (objArray[i].getNumber() == s) {
                finalreturn = i;
            } else {
                finalreturn = -1;
            }
        }
        return finalreturn;
    }
}

好运!!< P>不要用C和C++标记java代码!如果for循环没有输入,会发生什么?编译器不知道它总是会被输入。你需要在所有可能的分支中返回。对我来说,整个for循环看起来有点无意义。一旦进入,它就永远不会到达下一个迭代。其他的应该很可能被删除和TH。E返回- 1;应该在函数的末尾的循环之外。否则,返回1,除非数组中的第一个元素匹配,这似乎有点无意义——你不需要循环。不要用C和C++标记java代码!如果for循环没有被输入,会发生什么?编译器不知道它总是会被输入。您需要在所有可能的分支中返回。在我看来,整个for循环看起来有点毫无意义。一旦输入,它将永远不会到达下一次迭代。else可能应该被删除,并且返回-1;应该在函数末尾的循环之外。否则,除非数组中的第一个元素匹配,否则返回-1,这似乎有点poiuntless-不需要循环!逻辑仍然错误。如果在除最后一个元素之外的任何位置都找到s,则返回-1。当我执行上述代码时,在AccountDemo.maincountdemo.j的线程main java.lang.NullPointerException中仍会出现以下错误异常ava:18@surya1616那是因为新帐户[5];创建一个包含五个元素的数组,所有元素都初始化为null。您需要使用新Account创建Account对象。可以手动创建,也可以在循环中创建。逻辑仍然错误。如果在除最后一个元素之外的任何位置都找到了s,则返回-1。执行上述代码时,仍会出现以下错误AccountDemo.mainAccountDemo.java处的主线程java.lang.NullPointerException中出现异常:18@surya1616这是因为new Account[5];创建了一个包含五个元素的数组,所有元素都初始化为null。您需要使用new Account创建Account对象。可以手动创建,也可以在循环中创建。