5黑马币
- class ArrayTest4
- {
- public static void main(String[] args)
- {
- int[] arr = {2,4,5,7,8,19,32,45};//8
- int index = getIndex_2(arr,190);
- System.out.println("index="+index);}
- public static int getIndex_2(int[] arr,int key)
- {
- int min = 0,max = arr.length-1,mid;
- while(min<=max)
- {
- mid = (max+min)>>1;
- if(key>arr[mid])
- min = mid + 1;
- else if(key<arr[mid])
- max = mid - 1;
- else
- return mid;
- }
- return min;
- }
复制代码
在之前学习中,知道变量有自己的作用域。
而这段代码中最终的min变量,为何不是初始化时的0呢?
它们又有何不同,希望各位大神可以帮帮忙!
|
最佳答案
查看完整内容
因为你局部变量min是定义在方法中while循环外的,所以它的作用范围是整个方法,min并没有随着while循环的结束而消失,所以return的min是运算后的min,而不是初始的0
|