A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

DemoBoy1125

中级黑马

  • 黑马币:108

  • 帖子:41

  • 精华:0

© DemoBoy1125 中级黑马   /  2016-12-15 10:33  /  1116 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public static int binarySearch(int[] arr, int key)
        {
                int min=0;
                int max = arr.length-1;
                while(min<=max)
                {
                        int mid = (min + max)/2;
                        if (arr[mid]<key)
                                min = mid +1;
                        else if(arr[mid ]>key)
                                max = mid -1;
                        else
                                return mid;
                }
                return -min-1;

        }

当min <= max 时候,每次都会int mid ,为什么不会报错,求分析一下while的内存运行结构

1 个回复

倒序浏览
我的理解是 每次while执行完一次循环后 其中循环体中的变量便会失效 因为在循环体外,再访问这个变量是访问不到的了。 所以循环体内变量每执行一遍都要重新定义。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马