我的扫描仪输入被跳过并且代码被终止

问题描述 投票:0回答:1

我正在用Java编写一个“加仑到升,反之亦然”的程序,但是一旦我完成了我的程序,我就给了它第一次运行。我按预期显示了系统输出,但随后它跳过了程序的用户输入阶段。

    import java.util.Scanner;

    public class Main {
        private static void intro(String[] args) {
            final Scanner galOrLit = new Scanner(System.in);

            System.out.println("[1] => Gallons to Liters");
            System.out.println("[2] => Liters to Gallons");

            if ("1".equals(galOrLit)) {
                galToLit(args);
            } else if ("2".equals(galOrLit)) {
                litToGal(args);
            }
        }

        private static void galToLit(String[] args) { 
            double liters;

            System.out.println("Enter Gallons: ");
            final Scanner gallons = new Scanner(System.in);

            int input = gallons.nextInt();
            liters = input * 3.7854;
    
            System.out.println("\n" + input + " gallons is " + liters + " liters.");
        }

        private static void litToGal(String[] args) {
            double gallons;

            System.out.println("Enter Liters: ");
            final Scanner liters = new Scanner(System.in);

            int input = liters.nextInt();
            gallons = input / 3.7854;

            System.out.println("\n" + input + " liters is" + gallons + " gallons.");
        }

        public static void main(String[] args) {
            intro(args);

        }
    }`

我尝试最终完成我的扫描仪,因为我在一个班级中有多个扫描仪,遵循this帖子。我期望我的代码能够顺利运行,但它对输出没有任何影响。这是我对两个版本的code的了解。

java java.util.scanner final
1个回答
0
投票

看起来您实际上并没有读取用户的任何输入。您只是打印出可供选择的选项,但没有读取用户的输入。您只需添加一行:

String choice = scanner.nextLine();

它的样子是这样的:

private static void intro(String[] args) {
    final Scanner scanner = new Scanner(System.in);

    System.out.println("[1] => Gallons to Liters");
    System.out.println("[2] => Liters to Gallons");

    String choice = scanner.nextLine();

    if ("1".equals(choice)) {
        galToLit(args);
    } else if ("2".equals(choice)) {
        litToGal(args);
    }
}

希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.