当前位置: 首页 > 知识库问答 >
问题:

Java:向while循环添加用户输入

督瑞
2023-03-14

我试图在PlayerOne类中放入一个while循环,这样就可以通过用户输入来选择玩家的职业。我不知道怎么让它起作用。你能给我一个建议或提示吗?谢谢!(我想你不需要玩家类或者主类,所以我就让他们置身事外)

Scanner scanner = new Scanner(System.in);
while (true) {
         System.out.println("Choose your profession: \n" +
        "Press 1 for a knight class\n" +
        "Press 2 for a rider class\n" +
        "Press 3 for a mage class");
    int choice = scanner.nextInt();
    scanner.nextLine();
    switch (choice) {
        case 0:
            // here I want to put an option to choose a knight by pressing number 1
            break;
        case 1:
            // an option to choose a rider by pressing number 2
            break;
case 1:
            // an option to choose a mage by pressing number 3
            break;

共有2个答案

干稳
2023-03-14
public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    String profession= null;
    while (profession == null) {
        System.out.println("Choose your profession: \n" +
                "Press 1 for a knight class\n" +
                "Press 2 for a rider class\n" +
                "Press 3 for a mage class");
        String choice = scanner.nextLine();

        if (choice.equals("1")){
            profession = "knight";
            System.out.println("You selected: "+profession+" class.");
        }else if (choice.equals("2")){
            profession = "rider";
            System.out.println("You selected: "+profession+" class.");
        }else if (choice.equals("3")){
            profession = "mage";
            System.out.println("You selected: "+profession+" class.");
        }else {
            System.out.println("invaild option");
        }
    }
    
}
狄晟睿
2023-03-14

我认为当某人选择一个有效的职业时,你需要一个停止条件,比如:

Scanner scanner = new Scanner(System.in);
String profession = null;
while (profession == null) {
    System.out.println("Choose your profession: \n" +
        "Press 1 for a knight class\n" +
        "Press 2 for a rider class\n" +
        "Press 3 for a mage class");
    int choice = scanner.nextInt();
    scanner.nextLine();
    switch (choice) {
        case 1:
            profession = "knight";
            break;
        case 2:
            profession = "rider";
            break;
        case 3:
            profession = "mage";
            break;
        default:
            System.out.println("Invalid option");
            profession = null;
            break;
    }
}
System.out.println("You selected: "+profession+" class.");
 类似资料:
  • 我正在设置一个,它在用户输入整数之前一直执行。但是,按照我现在的方式,循环在输入整数后再次打印消息,然后程序正常执行。有人能建议一种方法来使输入整数后不再打印该消息吗?谢了!

  • 首先,感谢你阅读我的帖子并帮助我。 我试图编程,我定义了一个随机数,程序猜测这个随机数,然后,根据我说猜测太高或太低,程序再次猜测。 再次感谢!

  • 我正在尝试编写一个程序,允许在无限循环中生成随机数。如果用户按下'c',它将脱离循环。但是循环只在我按下c时开始,它应该在之前开始,当我按下'c'时它应该停止。 另外,我想知道如何才能只使用while循环而不是do-while循环来完成这个程序。当我使用while时,我从开始,然后使用来自input的if语句中断循环,但这也不起作用。内部仍然有两个for循环。 多谢

  • 我正在为学校做一个简单的Java计算器,效果很好。但是,我需要添加一个while循环,询问用户是否要继续是/否。不过,我不知道应该将while语句放在哪里。我试着把if语句放在上面,我试着把它放在下面,然后把它添加到每个if和else if语句中,但仍然无法让它工作。在if和else-if语句中,应该在哪里放置while循环,以获得运行while循环的所有选项?

  • 我试图通过使用Kryonet进行通信来创建一个基本的IRC。我遇到的问题是,在我的代码中,我不能安全地使用允许用户键入和发送消息的main while循环,因为Scanner给出了一个错误,并且似乎跳过了对nextLine()的调用。我想做的是让扫描仪在继续之前等待用户输入。 更准确地说,程序将首先在行的开头放一个“:”,然后在用户按enter键后获取用户键入的任何内容,然后将其发送到服务器。我得

  • 问题内容: 我有一个无限的while循环,我想在用户按下某个键时退出。通常,我用来获取用户的响应。但是,我不必等待响应。我想要这样的东西: 这应该很简单,但是我似乎无法弄清楚。我倾向于使用线程的解决方案,但我不想这样做。我该怎么做? 问题答案: 我认为您可以使用msvcrt做得更好: 可悲的是,仍然是特定于Windows的。