((Java)if/else if/else循环后的Return语句?
卡在我的赋值的一个特定部分:在循环外有一个返回语句。如果你看代码,你可以猜测我在这里尝试做什么。程序的其余部分工作正常,但这个方法一直给我相同的错误语句:缺少返回语句((Java)if/else if/else循环后的Return语句?,java,if-statement,return,static-methods,Java,If Statement,Return,Static Methods,卡在我的赋值的一个特定部分:在循环外有一个返回语句。如果你看代码,你可以猜测我在这里尝试做什么。程序的其余部分工作正常,但这个方法一直给我相同的错误语句:缺少返回语句 private static String HighOrLow (int[] numbers) { for (int i = 0; i < numbers.length; i++) { if (numbers[i] > average) { 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,你应该在循环外添加一个返回语句,所以将永远不会进入您的功能内部
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";
}
按照惯例,方法也应以第一个小写字母开头:
方法应该是动词,混合大小写,第一个字母小写,每个内部单词的第一个字母大写
如果numbers长度为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";
}
按照惯例,方法也应以第一个小写字母开头:
方法应该是动词,混合大小写,第一个字母小写,每个内部单词的第一个字母大写
如果要计算所有数字,则应将每个整数的结果存储在数组中,让循环完成,然后返回
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();
}
如果要计算所有数字,则应将每个整数的结果存储在数组中,让循环完成,然后返回
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();
}
如果您的方法在第一次迭代后返回,则使用循环是没有意义的。实际上,不清楚您试图执行什么操作。始终确保包含代码试图完成什么操作的描述。如果您的方法在第一次迭代后返回,则使用循环是没有意义的。实际上,不清楚您试图执行什么操作。a始终确保包含代码试图完成的内容的描述。如果这确实是代码的意图,那么从for循环更改为If numbers.length==0会更清楚。如果这确实是代码的意图,那么从for循环更改为If numbers.length会更清楚==0返回在方法顶部找不到任何数字。感谢额外的帮助。问题是我需要它来正确读入方法。格式打印很好,但所有内容都高于平均值。感谢额外的帮助。问题是我需要它来正确读入方法。格式打印很好,但所有内容都在进行高于平均水平。