int lowerBound = 0;
int upperBound = nElems - 1;
int curIn;
while (true) {
curIn = (lowerBound + upperBound) / 2;
if (lowerBound > upperBound) {
break;
}
if (a[curIn] == value) {
break;
}// found it
//else if 接下面的
if (a[curIn] < value) // divide range
{
if (curIn == nElems - 1) {
curIn = curIn + 1;
break;
}else {
lowerBound = curIn + 1; // 注意这里是+1
}
}
else {
if (curIn == 0) {
break;
}
if (a[curIn - 1] <= value) {
break;
} else {
upperBound = curIn - 1; // 注意这里是-1;
}
}
}
比如说
if (lowerBound > upperBound) {
break;
}
if (a[curIn] == value) {
break;
这串代码,为什么if语句后可以直接跟一个break的?假设满足的话跳出循环,跳到哪里?下一个if语句吗
假设不满足if语句,又回到哪里?谢谢
循环里边的break表示跳出当前循环层级 这几个break都是在while里边,如果满足,就跳出while循环,直接到while大括号后边内容