当我在主体中使用布尔方法时,我的程序冻结并停止工作。我已经尝试将方法放在不同的地方,但完全相同的事情发生了 - 它冻结了。
该方法非常简单且写得很好,我不确定是什么导致了这个问题。
P.S。该方法位于代码的底部。
感谢您的帮助!
编辑:现在我看一下就是一个愚蠢的问题。再次感谢大家!
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
int stringNumber = 0;
String[] stringArray = new String[10];
for (int i = 0; i <= stringArray.length; i++) {
boolean itemExists = false;
boolean AddItem = AddItem();
if (AddItem == true) {
out.println("\nEnter a string");
String input = keyboard.next();
if (i > 0) {
for (int j = 0; j < stringArray.length; j++) {
if (input.equalsIgnoreCase(stringArray[j])) {
itemExists = true;
out.println("Item \"" + input + "\" already exists.");
break;
}
}
}
if (itemExists == false) {
stringArray[stringNumber] = input;
out.println("\"" + stringArray[stringNumber] + "\"" + " has been stored.\n");
} else {
out.println("Try again.");
i--;
}
PrintArray(stringArray);
stringNumber++;
}
}
}
// This is the method I was talking about //
public static boolean AddItem() {
Scanner keyboard = new Scanner(System.in);
int input = keyboard.nextInt();
out.println("If you want to add an item, Press 1");
if (input == 1) {
return true;
} else {
out.println("Invalid input.");
return false;
}
}
答案 0 :(得分:5)
我怀疑它没有冻结 - 它只是在等待输入。不幸的是,由于这两个语句的排序,它没有告诉你正在等待输入:
int input = keyboard.nextInt();
out.println("If you want to add an item, Press 1");
切换那些,这个程序更有意义。即使没有切换它们,它也不会冻结 - 只是等待输入。
答案 1 :(得分:0)
您正在使用scanner.nextInt()
等待用户输入 和 未冻结 。从控制台输入所需的值。
答案 2 :(得分:0)
打印然后捕获输入。即
System.out.print(something);
int i = keyboard.nextInt();