概述
今天写代码犯了一个很简单的错误,但是刚开始困惑了好一会儿,还是基础不扎实的原因。
问题:
代码:
int partition(int a[], int low, int high)
{
int privotKey = a[low]; //基准元素
while (low < high) { //从表的两端交替地向中间扫描
while (low < high && a[high] >= privotKey) --high; //从high 所指位置向前搜索,至多到low+1 位置。将比基准元素小的交换到低端
swap(&a[low], &a[high]);
while (low < high && a[low] <= privotKey) ++low;
swap(&a[low], &a[high]);
}
print(a, 5);
return low;
}
这是几个while循环,上面的这种写法让人很容易想错(我自己容易想错)
在记忆中 while循环一般是这样用的
while(条件)
{
语句
}
也就是条件是用"()"小括号括起来的,循环执行的语句是用"{}"大括号括起来的,这是记忆中的样子,思维的束缚让我不能了灵活理解下面这几句:
while (low < high && a[high] >= privotKey) --high; //从high 所指位置向前搜索,至多到low+1 位置。将比基准元素小的交换到低端
swap(&a[low], &a[high]);
while (low < high && a[low] <= privotKey) ++low;
swap(&a[low], &a[high]);
我错误的认为
swap(&a[low], &a[high]);
这句代码是第一个while循环的循环语句,后来通过代码调试,我才发现了自己的错误,这句其实跟while没什么关系,只不过是先后顺序而已,--high 这句代码才是while的循环语句,分号代表这个语句的结束。
最后
以上就是土豪电话为你收集整理的while(条件) 语句;语句 容易理解错的一点的全部内容,希望文章能够帮你解决while(条件) 语句;语句 容易理解错的一点所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复