我正试图为将来的工作制作一个库,作为任务的一部分,并且已经完成了大部分工作,但是我无法弄清楚如何从用户输入的数组中制作基于控制台的菜单。只是为了澄清一下,我不是要答案,因为我才刚刚开始,但是我想要的是一个很好的起点,例如命令或我可以使用的东西。我将`/ **
*使用选项中的字符串作为菜单生成基于控制台的菜单
*项。当withQuit为true时,为“退出”选项保留数字0。
*
* @参数选项
*-代表菜单选项的字符串
* @param withQuit
*-为true时,为“退出”添加选项0
* @返回用户所作选择的int
* /

    public static int promptForMenuSelection(String[] options, boolean withQuit) {

    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

    String.
}`


抱歉,如果上面的要求很难理解。请帮助,这是作业中的最后两个任务之一,我已经准备好完成它。

谢谢。

最佳答案

当您检查用户输入的内容时,可以将其与数组的索引匹配。例如:

// Scanner for user input:
Scanner scanner = new Scanner(System.in);

// Gets the index (Surround with try/catch to prevent errors)
int userRequest = Integer.ParseInt(scanner.nextLine());

if(withQuit && userRequest == 0)
     return // Whatever value you want to return here on quit;

if(userRequest - 1 > options.length)
     return // Whatever value you want to return when the request is out of range;

for(int i = 0; i < options.length; i++)
     if(options[i] == userRequest - 1)
          return i; // Returns the option index


由于您尝试返回整数,因此我假设您将不在乎数组中的值。但是,如果这样做,只需将return语句设置为:

return options[i];


并将返回值设置为String而不是函数头中的int。

09-19 10:32