while(min<=max )
if(key>arr[mid]) //第一个if//只有这一个if语句是属于while循环的循环体
min=mid+1;
else if(key<arr[mid]) //第二个else if
max=mid-1;
if (key==arr[mid]) //第3个if
return mid;
mid=(min+max)/2;
楼主想做的是折半查找吧,while循环的时候,在没加大括号的情况下,会把与它最近的一个语句作为循环体的,后面的都不在循环之内……为了避免这种情况出现,在些循环结构的时候还是按照格式,不管循环体是一句还是多句,都加上括号,这样安全,if,for都是这样的 |