java - Switch 语句使第一种情况跳过一行

标签 java switch-statement

所以我猜这个问题的解决方案会非常简单,但我不知道我在寻找什么,所以我需要一些帮助。发生的情况是,当我运行程序并选择情况 1 时,它会打印“狗的名字”和“狗的比赛”,但没有给我填写狗的名字的机会。因此,当我选择案例 1 时,我一开始只填写狗的比赛、重量和年龄!这是我正在使用的代码...

do {
        System.out.println("(1 - reg\n2 - tail\n3- delete\n4-exit\nEnter number: ");

        // so this is where the switch stuff starts
        int option=sc.nextInt();
        switch (option) {



        case 1: System.out.println("Dog's Name: ");
            String na=sc.nextLine();

            System.out.println("Dog Race: ");
            String ra=sc.nextLine();

            System.out.println("How heavy?");
            double wey=sc.nextDouble();

            System.out.println("How old?");
            double ag=sc.nextDouble();

            dog doggy= new dog(na, ra, wey, ag);
            kennel.add(doggy);
            break;

        case 2: System.out.println("its a tail");
            break;

        case 3: System.out.println("you delete");
            break;

        case 4: System.out.println("QUITTING\n(Data was not saved srry.)");
            play = false;


        default: System.out.println("try again");
            }
        }while(play);

最佳答案

我相信您需要调用nextLine()调用 nextInt() 后,因为扫描仪尚未前进到下一行。

关于java - Switch 语句使第一种情况跳过一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8408444/

相关文章:

c - 数组操作菜单 C 编程

javascript - 如何将此 else if 语句转换为 switch 语句?

Java 抽象类的子类的构造函数

java - 为什么不同的案例条件体不在不同的范围内?

将 ada 代码转换为其 C

c++ - 在开关盒中返回 bool 值

java - PKCS11异常 : CKR_KEY_FUNCTION_NOT_PERMITTED

java - 从列表对象中获取值

java - 为什么允许在接口(interface)中实现

java - 长mac地址返回字节数组