【发布时间】:2014-08-01 16:44:11
【问题描述】:
好吧,我一直在尝试这个练习,因为我不擅长异常。所以这里是练习的上下文:用 main 方法编写一个类(以下代码由任务给出):
public class task{
public static void main(
String[] args)
{
int[] array = new int[10];
// initialise array
int result =task.min(array);
// Where the class task
// contains the min method
}
所以我被要求确保该方法有效 即使数组只包含一个元素或根本不包含任何元素。因此,对于上面给出的代码,我必须使用异常来处理所有可能弹出的错误。
这就是我所做的:
public static void main(String[] args){
int[] array = new int[10];
array[0]=5;
array[1]=7;
int result =Exercise1.min(array);
if(array.length<=0){
throw new IllegalArgumentException("empty array");
}
else if(array.length<10 && array.length>0){
throw new IllegalArgumentException("I got just these numbers");
}
System.out.println(result);
}
public static int min(int[] array) {
int min = array[0];
for(int i=1;i<array.length;i++){
if(array[i]< min){
min = array[i];
}
}
return min;
}
}
但是无论我写什么输出总是0,我不明白为什么。如果我的方法完全错误,请提供一些建议。
【问题讨论】:
-
您的异常应该在
min方法中,并且您必须在main方法中处理它们。除此之外,您的代码应该按预期工作。可能你在执行代码时遇到了问题,你得到了最后一次有效执行的结果,它打印了 0。 -
if(array[i]< min){min = array[i]; }这使得 min 总是设置为最小值,因为array[2-9] = 0, min 返回 0 -
如果声明为 int[10],您的数组的长度将始终为 10。它不会调整大小。
标签: java arrays custom-exceptions