((Java) Return if/else if/else 循环后的语句?
((Java) Return statement after if/else if/else loop?
卡在我作业的特定部分:在循环外有一个 return 语句。如果您查看代码,您可以猜测我在这里要做什么。该程序的其余部分有效,但此方法不断给我相同的错误语句:"missing return statement".
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,您应该在循环外添加一个 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";
}
同样按照惯例,方法应该以首字母小写开头:
Methods should be verbs, in mixed case with the first letter lowercase, with the first letter of each internal word capitalized.
如果您想计算所有数字,您应该将每个整数的结果存储在数组中,让循环结束,然后 return。
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();
}
卡在我作业的特定部分:在循环外有一个 return 语句。如果您查看代码,您可以猜测我在这里要做什么。该程序的其余部分有效,但此方法不断给我相同的错误语句:"missing return statement".
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,您应该在循环外添加一个 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";
}
同样按照惯例,方法应该以首字母小写开头:
Methods should be verbs, in mixed case with the first letter lowercase, with the first letter of each internal word capitalized.
如果您想计算所有数字,您应该将每个整数的结果存储在数组中,让循环结束,然后 return。
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();
}