[英]Switch Statement not exiting loop. (Java)
我有一個簡單的菜單系統,用戶點擊8即可離開。 但是由於某種原因,當我在測試過程中達到8時,它就像沒有任何反應一樣,回到了循環的頂部。
package potluck;
import java.util.*;
import potluck.*;
public class Controller {
private Scanner input;
private final static int USER_LOGIN = 0;
private final static int CREATE_MEMBER = 1;
private final static int CREATE_ADMIN = 2;
private final static int CREATE_RECIPE = 3;
private final static int COMMENT = 4;
private final static int DELETE_RECIPE = 5;
private final static int EXIT = 8;
public Controller(){
input = new Scanner(System.in);
startUp();//no better name to be thought of
}
public void startUp() {
// TODO Auto-generated method stub
int choice;
do {
this.displayMenu();
choice = input.nextInt();
input.nextLine();// clears carriage return
//depending on choice takes to a different menu
switch (choice) {
case CREATE_MEMBER:
Member member = new Member();
break;
// case CREATE_ADMIN:
// member.addAdmin();
// break;
case CREATE_RECIPE:
Recipe.addRecipe();
break;
case COMMENT:
Recipe.addComment();
break;
case DELETE_RECIPE:
Recipe.deleteRecipe();
break;
case EXIT:
System.out.println("Thanks for using our software");
break;
default:
System.out.println("Error, Invalid selection.");
}
} while (choice != 8); //choice 8 exits
}
private void displayMenu() {
System.out.println("1 Create Member");
System.out.println("2 Create Admin Member");
System.out.println("3 Create Recipe");
System.out.println("4 Leave Comment");
System.out.println("5 Delete Recipe");
System.out.println("8 Exit");
System.out.println("Please enter menu option, to exit enter 8");
}
}
在測試中,它聲稱選擇為8,這應該會打破一會兒……但不會……
更新:復制代碼時,我被告知不要使用某些工作。 我在選擇項8下有system.exit,但被告知那是錯誤的代碼
不好意思 我是個白痴。 在啟動它的主要位置,我實例化了一個新的控制器(您正在查看的類),該控制器在構造函數中啟動菜單。 然后我調用了startup()方法。 這意味着它運行良好,因為我很笨,它只運行了兩次。
public static void main(String[] args) {
// TODO Auto-generated method stub
Controller cntlr = new Controller();
cntlr.startUp();
}
public Controller(){
input = new Scanner(System.in);
startUp();//no better name to be thought of
}
public void startUp() {
// TODO Auto-generated method stub
int choice;
do {
this.displayMenu();
choice = input.nextInt();
input.nextLine();// clears carriage return
//depending on choice takes to a different menu
switch (choice) {
case CREATE_MEMBER:
Member member = new Member();
break;
case CREATE_ADMIN:
member.addAdmin();
break;
case CREATE_RECIPE:
Recipe.addRecipe();
break;
case COMMENT:
Recipe.addComment();
break;
case DELETE_RECIPE:
Recipe.deleteRecipe();
break;
case EXIT:
System.out.println("Thanks for using our software");
break;
default:
System.out.println("Error, Invalid selection.");
}
} while (choice != 8); //choice 8 exits
}
private void displayMenu() {
System.out.println("1 Create Member");
System.out.println("2 Create Admin Member");
System.out.println("3 Create Recipe");
System.out.println("4 Leave Comment");
System.out.println("5 Delete Recipe");
System.out.println("8 Exit");
System.out.println("Please enter menu option, to exit enter 8");
}
}
TL; DR。 我很傻,構造函數是我應該更多注意的事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.