사용자로부터 정수 입력을 읽는 프로그램에서 try/ 잘못된 항목을 처리하기 위해 catch 블록을 사용하면 InputMismatchException이 발생하면 무한 루프가 발생합니다(예: 사용자가 정수가 아닌 문자 입력).
무한 루프는 두 가지 문제로 인해 발생합니다.
무한 루프를 수정하고 InputMismatchException을 올바르게 처리하려면 여러 단계를 거쳐야 합니다. 복용 가능:
다음은 제안된 개선 사항이 포함된 수정된 코드입니다.
import java.util.InputMismatchException; import java.util.Scanner; public class Except { public static void main(String[] args) { Scanner input = new Scanner(System.in); boolean bError = true; int n1 = 0, n2 = 0, nQuotient = 0; do { try { System.out.println("Enter first num: "); n1 = input.nextInt(); System.out.println("Enter second num: "); n2 = input.nextInt(); nQuotient = n1/n2; bError = false; } catch (InputMismatchException e) { System.out.println("Error!"); input.next(); // Consume the erroneous input } } while (bError); System.out.printf("%d/%d = %d",n1,n2, nQuotient); } }
위 내용은 Java에서 InputMismatchException을 처리할 때 무한 루프를 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!