((Java)if if后面的return语句if / else循环?

时间:2016-04-04 01:45:21

标签: java if-statement return static-methods

坚持我的任务的特定部分:在循环之外使用return语句。如果你看一下代码,你可以猜测我在这里想做什么。程序的其余部分可以工作,但是这个方法不断给我相同的错误声明:“缺少return语句”。

private static String HighOrLow (int[] numbers)
 {
     for (int i = 0; i < numbers.length; i++)
     {

        if (numbers[i] > average) {
             return (numbers[i] + "is above the average");
        }
        else if (numbers[i] < average) {
             return (numbers[i] + " is below the average");
        }
        else   {
             return (numbers[i] + " is equal to the average");
        }

    }

我意识到有些东西应该在forloop之外,但不知道如何去做。任何有用的帮助表示赞赏。

4/5/16:首先,感谢所有的帮助!我把它设置好并且准备好了。除了每个数字,高或低,都超过平均水平。 Paul Guiheen有正确的想法,我很欣赏它,但我必须为每个数组整数打印单独的行。

2 个答案:

答案 0 :(得分:3)

如果数字长度为0,则应在循环外添加一个return语句,因此它永远不会进入for函数。

private static String HighOrLow (int[] numbers){
 for (int i = 0; i < numbers.length; i++) {
    if (numbers[i] > average) {
         return (numbers[i] + "is above the average");
    }
    else if (numbers[i] < average) {
         return (numbers[i] + " is below the average");
    }
    else   {
         return (numbers[i] + " is equal to the average");
   }
  }
  return "No numbers founds";
}

同样按照惯例,方法应该以小写的第一个字母开头:

  

方法应该是动词,混合大小写,首字母小写,每个内部单词的首字母大写。

答案 1 :(得分:1)

如果你想评估所有数字,你应该存储数组中每个整数的结果,让循环结束然后返回。

    private static String HighOrLow(int[] numbers) {
        if (numbers.length == 0) {
            return "No numbers provided";
        }

        ArrayList<Integer> above = new ArrayList();
        ArrayList<Integer> equal = new ArrayList();
        ArrayList<Integer> below = new ArrayList();

        for (int i = 0; i < numbers.length; i++) {
            if (numbers[i] > average) {
                above.add(numbers[i]);
            } else if (numbers[i] < average) {
                below.add(numbers[i]);
            } else {
                equal.add(numbers[i]);
            }
        }

        StringBuilder result = new StringBuilder();
        result.append("Above Average: ");
        result.append(above.toString());
        result.append(", ");
        result.append("Below Average: ");
        result.append(below.toString());
        result.append(", ");
        result.append("Average: ");
        result.append(equal.toString());
        return result.toString();
    }