如何在方法中返回system.out.println



我有一个程序,可以玩超级英雄王牌游戏,每次用户玩游戏时我都需要重复菜单。我试图创建一个方法(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" + ...;
}

则可以调用CCD_ 6。

只需更改displayMenus即可将菜单返回为String,而不是打印:

public static String displayMenus() {
    return "First - 1nNext -  2nPrev -  3nLast -  4nQuit -  5nnEnter Choice:n";
}

我简化了代码,因为代码本身有很多语法错误,但这应该可以回答您的问题。displayMenus()函数不需要返回String,而是可以在do...while循环的开头调用它。逻辑流程应为:

  • 初始化扫描仪
  • 创建可供选择的变量
  • 进入do...while循环
  • 致电displayMenus()
  • 从扫描仪读取用户选择
  • Do开关逻辑
  • 如果循环未中断,则返回第三项

我做了一个小课堂来演示:

package zzzTestProj;
import java.util.Scanner;
public class NewClass {
    public static void main(String[] args) {
        Scanner userInputScanner = new Scanner(System.in);
        int userMenuChoice;
        do {
            displayMenus();
            userMenuChoice = userInputScanner.nextInt();
            switch (userMenuChoice) {
            // FIRST
            case 1:
                break;
            // NEXT
            case 2:
                break;
            case 0:
                System.out.println("Closing system");
                System.exit(userMenuChoice);
                break;
            }
        } while (userMenuChoice != 5);
    }
    public static void 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.print("Enter Choice:");
    }
}

相关内容

  • 没有找到相关文章

最新更新