gpt4 book ai didi

c++ - c++函数中 "Unreachable code"的解释

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:00:14 25 4
gpt4 key购买 nike

目标是编写一个在数组中搜索值的函数。如果数组中包含该值,则返回key所在的索引。如果数组中不包含该值,则返回-1

我有一个返回数组变量索引的 C++ 函数。我需要解释为什么我的代码部分(即 for 循环表达式中的“i++”)被我的 IDE 标记为“无法访问”

我已经尝试逐行调试代码,看看我是否可以破译 i++ 无法访问的原因。我无法确定原因。但是,我怀疑这可能与我的“返回”声明有关

int main()
{
const int size = 4;
int array[] = { 345, 75896, 2, 543 };
int searchKey = 543;
std::cout << "Found at: " << search(array, size, searchKey);
return 0;
}

int search(int* array, int size, int searchkey)
{
while (1) {

std::cout << "Enter an Integer to search. Hit -1 to quit.\n";
scanf("%d", &searchkey);

if (searchkey == -1) {
break;
}

for (int i = 0; i < size; i++) {
if (array[i] == searchkey) {
return 1;
}
else {
return -1;
}
}
}
}

如果数组中存在 searchKey,我希望该函数返回数组的索引,但它总是以返回“-1”告终

最佳答案

for 循环不太正确。无论数组中第一项的值如何,函数都会在循环的第一次迭代中返回。如果第一项与搜索键匹配,则函数返回 1。如果不匹配,则返回 -1。它永远不会触及数组中的第二项。

您需要删除 else 部分。只有在循环结束后才返回-1。

for(int i=0; i<size; i++){
if(array[i] == searchkey){
// Key was found. Return the index.
return i;
}
}

// Key was not found.
return -1;

关于c++ - c++函数中 "Unreachable code"的解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55508267/

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