作业一
public int findLast (int[] x, int y) {
// Effects: If x==null throw NullPointerException
// else return the index of the last element
// in x that equals y.
// If no such element exists, return -1
for (int i=x.length-1; i > 0; i--)
{
if (x[i] == y)
{
return i;
}
}
return -1;
}
// test: x=[2, 3, 5]; y = 2
// Expected = 0
1)for循环应在i<=0处结束
2)x=[] 则指针为空,无法到达fault
3)x=[1,2,3],y=2 此时fault可到达,没有导致error状态
4)x=[3,4,5],y=2 导致error
作业二
public static int lastZero (int[] x) {
//Effects: if x==null throw
// NullPointerException
// else return the index of the LAST 0 in x.
// Return -1 if 0 does not occur in x
for (int i = 0; i < x.length; i++)
{
if (x[i] == 0)
{
return i;
}
}
return -1;
}
// test: x=[0, 1, 0]
// Expected = 2
1)循环应该改为for(int i = x.length-1 ; i >= 0 ; i++)
2)指针异常,无论怎样都会进入循环,进入循环即进入fault
3)x=[0],此时程序到达fault语句,但是没有导致error状态
4)x=[0,1,2] 导致error