第一次提问!xcode中折半查找法的mid表达式位置问题,谢谢大神们~~

请问大神们:第三行中定义mid的时候为什么不能直接写上mid=(low+high)/2?(试了一下是无限循环,不出现结果),为什么一定要在while函数中才能描述表达式呢?

 #import <Foundation/Foundation.h>
int ZheBanSearch(int a[],int len ,int key){
    int low=0,high=len-1,mid;
    while (low<=high) {
        mid=(low+high)/2;//mid的表达式必须在这里进行定义,在上面定义会没有输出
        if (key>a[mid]) {
            low=mid+1;
        }else if(key<a[mid]){
            high=mid-1;}
            else{
                return mid;}

    }
    return -1;
}
int main(int argc, const char * argv[]) {
    int a[]={-8,37,89,99,128};
    int b=ZheBanSearch(a,5,128);
    printf("b=%d\n",b);
    return 0;
}

把while的循环条件改下。low < high