坚持我的任务的特定部分:在循环之外使用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有正确的想法,我很欣赏它,但我必须为每个数组整数打印单独的行。
答案 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();
}