[英]printing 2 times donno why
當我從刪除部分中斷開時,我遇到了問題,代碼兩次打印主菜單選項
代碼沒有錯誤,並且可以正常運行,但是為什么打印兩次而不是一次?
public void mainloop() {
for (int i = 0; i < 100; i++) {
String x;
System.out.println("Please Select your option");
System.out.println("............................");
System.out.println("1 ADD NAME AND NUMBER \n2 REMOVE NAME AND NUMBER \n3 SEARCH NAME AND NUMBER \n0 EXIT");
System.out.println("............................");
x = input.nextLine();
if (x.equalsIgnoreCase("0")) {
System.out.println("Thank you!");
break;
}
if (x.equalsIgnoreCase("1")) {
String Name;
String Number;
System.out.println("Please Enter your Name below");
Name = input.nextLine();
System.out.println("Please Enter your Number below");
Number = input.nextLine();
System.out.println("");
System.out.println("Your Name " + Name + " and Number " + Number + " has been saved!\n");
objectclass objectclassObject = new objectclass(Name, Number);
Test.add(objectclassObject);
}
if (x.equalsIgnoreCase("2")) {
System.out.println("-------ALL NAME AND NUMBERS-------");
System.out.println("");
for (int j = 0; j < Test.size();) {
objectclass p = Test.get(j++);
System.out.println(j + ". Name: " + p.getName() + " - " + p.getNumber());
}
for (int j = 0; j < Test.size(); j++) {
System.out.println("");
System.out.println("Enter Index number to remove Contact from Phonebook!");
int v = input.nextInt();
int temp = (v - 1);
if (v >= 1 && v <= Test.size()) {
System.out.println("Name: " + Test.get(temp).getName() + " And Number: " + Test.get(temp).getNumber() + " has been removed!!");
System.out.println("");
Test.remove(temp);
} else {
System.out.println("Please enter number properly!!");
}
break;
}
}
if (x.equalsIgnoreCase("3")) {
String y;
System.out.println("*** Enter your Name below for search ***");
y = input.nextLine();
for (objectclass p : Test) {
String z = p.getName();
if (z.equalsIgnoreCase(y)) {
System.out.println("Your Name is: " + p.getName() + "\nYour Number is: " + p.getNumber());
System.out.println("");
}
if (!z.equalsIgnoreCase(y)) {
System.out.println("Contact not found!!!");
}
}
}
}
}
}
System.out.println("Please Select your option");
System.out.println("............................");
System.out.println("1 ADD NAME AND NUMBER \n2 REMOVE NAME AND NUMBER \n3 SEARCH NAME AND NUMBER \n0 EXIT");
System.out.println("............................");
這打印兩次:/〜
如@Aeshang所述,請使用Switch代替if。 其次
if (x.equalsIgnoreCase("2")) {
塊沒有結束
if (x.equalsIgnoreCase("3")) {
您的刪除部分還包括搜索部分。 不知道這是否可以解決問題,請先更正這些問題並檢查答案。
如果打印兩次,則表明您經過了2次循環。 讀取后嘗試顯示變量“ x”。 我敢打賭,您在合法輸入之間還有多余的空字符串。
發生的是nextInt()不占用換行符。 因此,下次讀取x時,將讀取值v之后的行尾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.