我不断收到遗失的退货单吗?

时间:2019-03-18 02:31:26

标签: java

在我的代码中,我试图遍历arraylist,看看是否有重复出现的数字。我不断收到一个错误消息,说我有一个丢失的return语句。我的代码正确吗?如何解决此问题。

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    ArrayList<Integer> list = new ArrayList<Integer>();
    list.add(3);
    list.add(2);
    list.add(7);
    list.add(2);

    System.out.println("Type a number: ");
    int number = Integer.parseInt(in.nextLine());
    if (moreThanOnce(list,number)) {
        System.out.println(number + " appears more than once");
    }
    else 
        System.out.println(number + " number does not appear more than once");
}
public static  boolean moreThanOnce(ArrayList<Integer> list , int number) {
    int count = 0;
    for (int i = 1; i < list.size(); i ++ ) {
        if (list.get(i) == number) {
            count ++;
            if (count > 1) {
                return true;
            }
            else 
                return false;





}

}

5 个答案:

答案 0 :(得分:2)

只需删除else部分并将“ return false”返回到moreThanOnce方法中的for循环之外

答案 1 :(得分:1)

public static  boolean moreThanOnce(ArrayList<Integer> list , int number) {
    int count = 0;
    for (int i = 1; i < list.size(); i ++ ) {
        if (list.get(i) == number) {
            count ++;
            if (count > 1) {
                return true;
            }
            else //delete this line
                return false; // delete this line
        }
    }
    return false;//add return here
}

要解决该错误,只需要在for循环之外返回即可。 而且我认为您应该删除其他逻辑,从而使该方法无法正确找到多次出现的数字。

答案 2 :(得分:1)

更改为:

public static  boolean moreThanOnce(ArrayList<Integer> list , int number) {
    int count = 0;
    for (int i = 1; i < list.size(); i ++ ) {
        if (list.get(i) == number) {
            count ++;
            if (count > 1) {
                return true;
            }
        }
    }
    return false;
}

如果没有一个等于number的重复编号并且也从未进入for循环,则这保证返回一个return语句(false)。如果满足您输入的条件,它将返回true。

答案 3 :(得分:0)

在moreThanOnce方法中未执行for循环的情况下,您会丢失return语句。

答案 4 :(得分:-1)

您缺少moreThanOnce()的右括号“}”。它有四个开放括号,但只有三个封闭括号。

大多数面向代码的编辑器都会为您匹配大括号,并帮助查找不平衡的大括号(以及括号等),找出在编辑器中执行此操作的方式,因为这是整个编程生涯中所需要的。