在调用其中的方法后如何继续循环?

时间:2016-04-20 16:51:18

标签: java

我来自主要课程的循环

do {

     System.out.println("Awaiting new action");
     command_string = input.next();
     main.Commands(command_string);

       }
    while (!input.next().equals("exit"));

然后,输入的用户字符串将在名为Commands的方法中通过单独的循环运行。显示在这里

    public void Commands(String commandinput)
{
 if (commandinput.equals("inv") || 
     commandinput.equals("help")||
     commandinput.equals("exit"))
 {
   if (commandinput.equals("inv"))
   {
      System.out.println("You have a total of " + mainsave.totalitems + " items");
      inventoryGrid();
   }
    if (commandinput.equals("help"))
   {
      System.out.println("[[[COMMAND LIST]]]\n" +
                         "Help -> Opens this menu\n" + 
                         "Inv  -> Views your current inventory\n" +
                         "Exit -> Exits the application\n");

   }
   if (commandinput.equals("exit"))
   {
        System.out.println("Exiting...");
        System.exit(0);
   }
 }
 else
    {
        System.out.println("Invalid command. Use the command 'help' to access command list");
    }

该方法正确输出所有内容但在控制台中您必须输入一些内容才能继续循环。 所以我的问题是如何在不首先输入内容的情况下再次启动循环? 即打印"等待新动作"在方法打印出来之后直接

3 个答案:

答案 0 :(得分:2)

更改

while (!input.next().equals("exit"));

while (!command_string.equals("exit"));

答案 1 :(得分:2)

试试这个。当用户在第一次循环迭代时输入"exit"时,这将退出一次。

do {
    System.out.println("Awaiting new action");
    command_string = input.nextLine();

      //break the loop even user enter "exit" in first Iteration.
    if(command_string.equals("exit")) 
        break;            
    main.Commands(command_string);
} while (true);

答案 2 :(得分:1)

input.next()替换为input.nextLine并且不要再调用两次,因为您需要输入两次然后:)而是使用已经定义的字符串变量command_string

实施例

public static void main(String[] args) {
    do {
        System.out.println("Awaiting new action");
        command_string = input.nextLine();
        Commands(command_string);

    } while (!command_string.equals("exit"));
    System.out.println("bye");
}