Do-while 不会循环返回

Do-while doesn't loop back

所以我正在研究一个涉及二进制转换等的问题。但是我这里的问题是我似乎无法在我的代码中使 do-while 语句在 catch 块完成执行时进行环回。这是我的代码。

System.out.println("This program converts a binary value to its decimal counterpart.\n");
    Scanner input = new Scanner(System.in);
    boolean invalidInput = true;

    do {

        try {
            System.out.print("(>) Enter the value to be converted: ");
            String numberToConvert = input.nextLine();
            long converted = Long.parseLong(numberToConvert, 2);
            System.out.println("(>) Decimal value of " + numberToConvert + " is : " + converted + "\n");
            invalidInput = false;
        } catch (Exception e) {
            System.out.println("(!) Entered value is non binary, please try again.\n");
            input.next();
        }

    } while (invalidInput);

从 catch 块中删除 input.next() 然后尝试 :-

    System.out.println("This program converts a binary value to its decimal counterpart.\n");
    Scanner input = new Scanner(System.in);
    boolean invalidInput = true;

    do {

        try {
            System.out.print("(>) Enter the value to be converted: ");
            String numberToConvert = input.nextLine();
            long converted = Long.parseLong(numberToConvert, 2);
            System.out.println("(>) Decimal value of " + numberToConvert + " is : " + converted + "\n");
            invalidInput = false;
        } catch (Exception e) {
            System.out.println("(!) Entered value is non binary, please try again.\n");
        }

    } while (invalidInput);