while和if是两个不同的语句用于控制程序流程的关键字。
总结: while和if的区别在于:
需要注意的是,在编写代码时,要确保循环的结束条件能够在某个时刻成为假,否则循环会陷入无限循环中,导致程序无法终止。
以下以顺序表头删操作进行分析
void SeqListPopFront(SeqList* ps)//头删
{
assert(ps);
assert(ps->size > 0);
int begin = 0;
while (begin < ps->size)
{
ps->a[begin] = ps->a[begin+1];
++begin;
}
ps->size--;
}
第一段代码中使用了while循环来遍历顺序表中的元素,将每个元素向前移动一位,最后将顺序表的大小减1,实现了头删操作。
void SeqListPopFront(SeqList* ps)//头删
{
assert(ps);
assert(ps->size > 0);
int begin = 0;
if (begin < ps->size)
{
ps->a[begin] = ps->a[begin+1];
++begin;
}
ps->size--;
}
第二段代码中使用了if语句,只会执行一次循环体内的操作,即将第一个元素向前移动一位。这样只能删除顺序表中的第一个元素,而不能删除其他位置的元素。