我有一个玩超级英雄王牌游戏的程序,每次用户玩游戏时都需要重复菜单。我试图创建一个方法(displayMenus),该方法将插入到每个switch语句中(关闭程序除外),但是我不知道如何获取它以返回此菜单。
public class Heros {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int index = 0;
do {
int inp = input.nextInt();
switch (inp) {
//FIRST
case 1:
index = 0;
System.out.println(HerosAsList.getHeros().get(index));
System.out.println(displayMenus);
break;
//NEXT
case 2:
index++;
if (index > HerosAsList.getHeros().size() - 1) {
index = HerosAsList.getHeros().size() - 1;
}
System.out.println(HerosAsList.getHeros().get(index));
System.out.println(displayMenus);
break;
//PREV
case 3:
index--;
if (index < 0) {
index = 0;
}
System.out.println(HerosAsList.getHeros().get(index));
System.out.println(displayMenus);
break;
//LAST
case 4:
index = HerosAsList.getHeros().size() - 1;
System.out.println(HerosAsList.getHeros().get(index));
System.out.println(displayMenus);
break;
//QUIT
case 0:
System.out.println("Closing system");
System.exit(inp);
break;
}
}
while(index<HerosAsList.getHeros ().size());
}
public static displayMenus () {
System.out.println("First - 1");
System.out.println("Next - 2");
System.out.println("Prev - 3");
System.out.println("Last - 4");
System.out.println("Quit - 5");
System.out.println("");
System.out.println("Enter Choice:");
}
}
非常感谢任何帮助,我似乎无法理解方法!
最佳答案
首先,displayMenus
的声明无效。您需要给它一个返回类型(即使它是void
),例如:
public static void displayMenus () {
如果使它无效,则需要调用
displayMenus()
而不调用System.out.println
:displayMenus();
如果将其设置为String,则需要在
displayMenus
中构建一个String并返回它,例如:public static String displayMenus() {
return "First - 1" + ...;
}
那么您可以调用
System.out.println(displayMenus())
。