我重构了一个工作项目,以练习在中断应用程序时创建可调用的方法。这个应用程序包含一个简单的String数组,该数组包含一个方法,该方法将用户输入与数组匹配,并打印元素名称和索引。
如果我不在if else语句的末尾加上break,应用程序就可以匹配有效的输入,但同时运行if和else语句。它实际上是按照索引的顺序打印if语句,并按照数组的长度打印else输出的次数。在所附的图片中,输入为索引0。if statement output在pic中,索引0与数组中的else输出数匹配并打印。else语句似乎正在读取数组长度。
如果我添加break,应用程序只会识别索引0,并按预期运行if语句,但也会运行else语句。但只会打印出if else输出一次。我希望这一点是明确的。培训师只是简单地说,不可能强制for循环打印出我所理解的内容,但我有一个不同的体验。
下面是代码:
import java.util.Scanner;
public class Main {
static Scanner scan = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("What are you looking for? ");
//String product = scan.nextLine();
String[] aisles = {"apples", "bananas", "candy", "chocolate", "coffee", "tea"};
searchProduct(aisles);
}
public static void searchProduct(String[] aisles) {
String product = scan.nextLine();
for (int i = 0; i < aisles.length; i++) {
if (product.equals(aisles[i])) {
System.out.println("We have " + aisles[i] + " in aisle " + i);
} else {
System.out.println("Sorry we do not have that product");
}
}
}
}
我期望匹配有效的用户输入并运行if语句或else语句。
1条答案
按热度按时间bq3bfh9z1#
我有个建议。
aisle
;如果不存在,则返回-1
)。