【发布时间】:2021-05-26 05:29:41
【问题描述】:
在这个程序中,我希望用户输入 20 个产品名称。从主要方法。这将传递给名为 searchProducts 的方法。但由于某种原因,它不起作用。它只让我输入一次,然后打印出所有 16 种产品。
public static void main(String[] args) {
String[] products= {"Pencil pouch", "pen", "Pencil sharpener", "High lighters", "Markers", "Erasers",
"Binder", "Notebooks", "Index cards", "Folders", "Glue", "Ruler", "Scissors", "Calculator",
"Calendar", "Backpack"};
System.out.println("Unordered list");
displayProducts(products);
sortProducts(products, 16);
System.out.println("");
System.out.println("Ordered list");
displayProducts(products);
}
private static int searchProducts(String[] products) {
Scanner sc = new Scanner(System.in);
String x = sc.nextLine();
System.out.println("Enter name of product: ");
for (int i = 0; i < products.length; i++) {
if (products[i].equals(x))
return i;
}
return -1;
}
private static void sortProducts(String products[],int n) {
for(int i = 0; i < n - 1; i++) {
int minindex = i;
String minStr = products[i];
for(int j = i + 1; j < n; j++) {
if(products[j].compareTo(minStr) < 0)
{
minStr = products[j];
minindex = j;
}
}
if(minindex != i)
{
String temp = products[minindex];
products[minindex] = products[i];
products[i] = temp;
}
}
}
private static void displayProducts(String[] products) {
for(int i = 0; i < products.length; i++){
System.out.println(products[i] + " ");
}
}
【问题讨论】:
-
我看不出有任何理由期望所呈现的程序能够读取 any 输入。
searchProducts()开头的代码读取一行,但该方法似乎从未被调用过,而且我看不到任何其他可以读取任何输入的代码.. -
你的代码块不清楚,从哪里调用
searhProduct?
标签: java arrays methods selection-sort