gpt4 book ai didi

java - if、else if、else 语句中的 return 语句不起作用

转载 作者:行者123 更新时间:2023-12-02 11:01:50 24 4
gpt4 key购买 nike

我在代码中偶然发现了一些问题,据说返回会停止我的方法,但就我而言并非如此。我尝试创建一种名为“binarySearch”的方法,据说它可以完成其应做的事情。

public int binarySearch(int lowIndex, int highIndex, int[] arr, int val) {
int middleIndex = (lowIndex + highIndex ) / 2;
if(arr[middleIndex] < val) {
lowIndex = middleIndex;
} else if (arr[middleIndex] > val) {
highIndex = middleIndex;
} else {
return middleIndex;
}
binarySearch(lowIndex, highIndex, arr, val);
return 0;
}

问题是如果我已经找到了搜索值所在的索引,否则语句将返回它并已经停止。但相反,我总是得到“0”,我认为这是我为默认返回设置的值 return 0 。因此,为了澄清一些问题,我在 else 语句上添加了一些文本,以确保它执行并返回 middleIndex ,然后文本出现,所以基本上我的循环进入 else 语句并希望返回 middleIndex但事实并非如此。也许递归与此有关,但我不知道你们是否可以帮助我。

最佳答案

由于您的方法的签名为 public int binarySearch,这意味着您应该从 binarySearch 方法的递归调用中返回 int。在该方法的正确实现中,您实际上不应该return 0

关于java - if、else if、else 语句中的 return 语句不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51277278/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com