这是过去一篇论文中的一个问题。我被要求创建一个静态方法 arrayMin
查找数组中的最小值 arr
.
我必须使用while循环,在每次迭代中,变量 min
将返回从第一个 i
元素。
有没有办法做到这一点而不用调用另一个方法/for循环并严格使用while循环,因为这个问题只值4%(包括编写循环不变量和javadoc)。不确定我是否把问题复杂化了。
public class Revision {
public static int arr[] = new int[] { 5, 8, 4, 3, 6, 2 };
public static int min = 1;
public static int arrayMin() {
int i = 0;
if (arr == null) {
return 0;
} else {
while (i < arr.length) {
// some function/method call to find smallest number of arr[i]
i++;
return min;
}
}
return min;
}
public static void main(String[] args) {
System.out.println(arrayMin());
}
``` `}`
4条答案
按热度按时间xuo3flqw1#
有多种方法,但这里有一种。公共静态int arraymin(int[]arr){
}
vecaoik12#
可以使用索引变量跟踪正命中数,如果相应的数字索引值比数组大小小一个,则该数字是最小的
n3h0vuf23#
有几件事:
数组不应该是静态的,应该将它作为参数传递给
arrayMin
方法;min
应该是本地人arrayMin
可变的,不是静态的;min
应初始化为Integer.MAX_VALUE
. 如果你用1
,和2
恰好是数组的最小值,您永远不会返回它;一个方法不能多次返回。一旦你这么做了
return min
,方法结束。对于变量min将从第一个i元素短语返回最小的数字,可能会有一些混淆。这可能意味着在每次迭代中min
将具有(不返回)从第一个开始的最小数字i
元素。以下是重构:
li9yvcax4#
您需要在循环外部有一个名为
min
. 您将使用循环来查找数组的最小值,并返回min
当循环完成时。