严蔚敏数据结构 下面的代码if(!p||j>i)中,为什么要加上j>i,j根本不可能大于i呀,求解

Status GetElem(LinkList L,int i,ElemType &e) // 算法2.8
{ // L为带头结点的单链表的头指针。当第i个元素存在时,其值赋给e并返回OK,否则返回ERROR
int j=1; // j为计数器
LinkList p=L->next; // p指向第一个结点
while(p&&j<i) // 顺指针向后查找,直到p指向第i个元素或p为空
{
p=p->next;
j++;
}
if(!p||j>i) // 第i个元素不存在 (这一行为什幺加上j>i,不多于吗?j不可能大于i呀)
return ERROR;
e=p->data; // 取第i个元素
return OK;
}

这种情况就是为了保证考虑周全,当i取0的时候不就是符合条件了嘛,个人理解就是严谨性吧
温馨提示:答案为网友推荐,仅供参考