This is a question about the state of putting the try-catch inside the while.

Asked 2 years ago, Updated 2 years ago, 89 views

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    System.out.println ("Determine if the digit 10 and the digit 1 are the same."");
    System.out.println ("Enter 0 to stop";

    System.out.print("Enter a 2-digit integer from 10 to 99>>");
    Integer num = null;

    while (true) {
        try{
            num = scanner.nextInt();
        }catch(Exception e){
            System.out.print ("Invalid input". Please re-enter.>>");
        }finally {
            if (num == 0)
                break;
            else if ((num < 10) || (num > 99)) {
                System.out.print ("Not a two-digit integer") Please re-enter.>>");

            }else {
                if (num % 10 == num / 10) {
                    System.out.println ("Yes! 10 and 1 are equal");
                    System.out.print("Enter a 2-digit integer from 10 to 99>>");

                }else{
                    System.out.println ("No! 10 and 1 are different");
                    System.out.print("Enter a 2-digit integer from 10 to 99>>");
                }
            }
        }

    }
    scanner.close();
}

If an exception occurs once in the above code, instead of running a subsequent try block, just run the catch block

It runs normally when you run another code with a similar structure, but what's the problem?

I changed the part of Integer num = null; or num = scanner.nextInt(); to and fro.

The same problem continues to occur.

Oh, and how do we end the program by only pressing enter instead of zero in this question?

java while-loop try-catch

2022-09-21 16:35

1 Answers

I'm also a beginner, but I'm leaving a reply.

catch(Exceptione){
                System.out.print ("Invalid input". Please re-enter.>>");
                scanner = new Scanner(System.in);
            }

This problem can be solved by assigning scanner objects again in the exception processing part.

"How do I end a program by only pressing enter instead of zero?" -> Personally, I received a String scanner.nextLine() instead of scanner.nextInt(). After that, you can solve it through num.hasCode().

And personally, I wonder if there should be a final part.

I don't think there's anything that needs to be done here, and I think the program could die unexpectedly because there's finally. Also, if you solve the first question, you'll see that the output is unnatural. If there is no final part, I think we can print it out naturally.

잘못된 Please let me know if there is anything wrong!


2022-09-21 16:35

If you have any answers or tips


© 2024 OneMinuteCode. All rights reserved.