gpt4 book ai didi

java - 无法提示在数组中搜索

转载 作者:行者123 更新时间:2023-12-01 18:19:04 24 4
gpt4 key购买 nike

我正在尝试创建一个搜索数组,用户在其中输入项目数,输入所有项目的值并搜索数组。但是,在用户输入所有项目的值后,我无法提示显示搜索数组。以下是所需输出的示例:

Enter the number of items: 5
Enter the value of all items (separated by space): 6 1 8 2 4
Enter the search key: 8
8 is found with index 2

这是我的编码:

import java.util.Scanner;

public class SearchArray {


public static void main(String[] args) {

int[] array;
int items;


Scanner in = new Scanner(System.in);
System.out.print("Enter the number of items: ");
items = in.nextInt();

array = new int[items];
print(array);
System.out.println();


}

public static void print(int[] array) {

Scanner in = new Scanner(System.in);

if (array.length > 0) {
System.out.print("Enter the value of all items (separated by space): ");
for (int i = 0; i < array.length; ++i) {
array[i] = in.nextInt();
}

}

}




public static int search(int[] array, int key){

Scanner in = new Scanner(System.in);


if (array.length > 0) {
System.out.print("Enter the search key: ");
for(int i=0; i<array.length; ++i){
if(array[i] == key){
key = in.nextInt();
System.out.println(key + "is present at location " + (i+1) + ".");
}
}


}
return -1;

}

public static boolean isEmpty(int[] array) {

if (array.length == 0)
return true;
else
return false;

}
}

如果有人能帮助我,那就太好了。谢谢!

最佳答案

阅读代码后,我发现您没有调用 search(int[] array) 这就是为什么您看不到所需的输出:

Enter the search key: ...

此外,在 print(int[] array) 函数中,您正在设置 array[i] = in.nextInt(); 但您没有使用如果该数组在该函数的范围内,我建议返回该数组并将主函数中的数组设置给它,因此它看起来像 array = print(array) 。这允许您在主函数中更改数组的值,然后您可以使用刚刚操作的数组调用 search(int[] array) 函数。我们允许函数返回整数数组的方式类似于 public static int[] print(int[] array)

我还在 search(int[] array, int key) 函数中看到,第二个参数是不必要的,因为您在该函数中询问 key ,您不希望知道键,直到该函数被调用。当您期望输入该键时,您应该在 for 循环之外接收输入,因为您只要求一个键。并且搜索函数也不需要返回任何内容,因此可以将返回类型设为void

关于java - 无法提示在数组中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60314003/

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