我正在开发一个java项目BinarySearch。我正在尝试创建并初始化一个变量 mid
,它将找出中间值,但它给我一个错误,您不能在此处声明变量。我也尝试过使用 split 声明,但它不起作用。这是我的一段代码:
public static boolean binarySearch(int[] data, int target, int low, int high){
if(low>high)
return false;
else
int mid=(low + high )/2;
if(target==data[mid]);
return true;
else if(target<data[mid])
return binarySearch(data, target, low, mid - 1);
else
return binarySearch(data, target, mid + 1, high);
}
我应该怎么做才能解决这个问题?
最佳答案
当你在 block 中声明变量时,你无法从 block 外访问它,
你应该将变量从 if 中删除并在 if 中更改他,
然后,当您使用 target==data[mid]
访问它时,程序将知道从哪里获取它。
例如:
public static boolean binarySearch(int[] data, int target, int low, int high){
int mid;
if(low>high)
return false;
else
mid=(low + high )/2;
if(target==data[mid]);
return true;
else if(target<data[mid])
return binarySearch(data, target, low, mid - 1);
else
return binarySearch(data, target, mid + 1, high);
}
有关变量作用域的更多信息: Scope of Variables In Java
关于java - BinarySearch 中的变量声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58363485/