InputMismatchException dalam Kod Java: Input Penyelesaian Masalah
Apabila menggunakan kelas Pengimbas dalam Java, pengecualian yang tidak dijangka boleh timbul semasa pemprosesan input. Satu ralat biasa ialah InputMismatchException, yang berlaku apabila input yang dimasukkan tidak sepadan dengan jenis data yang dijangkakan.
Pertimbangkan coretan kod ini:
public double checkValueWithin(int min, int max) { double num; Scanner reader = new Scanner(System.in); num = reader.nextDouble(); while (num < min || num > max) { System.out.print("Invalid. Re-enter number: "); num = reader.nextDouble(); } return num; }
dan
public void askForMarks() { double marks[] = new double[student]; int index = 0; Scanner reader = new Scanner(System.in); while (index < student) { System.out.print("Please enter a mark (0..30): "); marks[index] = (double) checkValueWithin(0, 30); index++; } }
Apabila menguji kod ini, anda menghadapi InputMismatchException disebabkan oleh jenis data yang tidak betul dimasukkan. Isu timbul apabila cuba memasukkan nilai berganda menggunakan titik (.) sebagai pemisah perpuluhan.
Penyelesaian:
Untuk menyelesaikan masalah ini, gunakan koma ( ,), bukan titik, untuk memisahkan bahagian pecahan nombor. Sebagai contoh, daripada memasukkan 1.2, masukkan 1,2. Koma ialah pemisah perpuluhan lalai untuk jenis data berganda dalam Java.
Dengan membuat pengubahsuaian mudah ini, anda boleh memastikan bahawa kod menerima nilai berganda dengan betul dan mengelakkan InputMismatchException.
Atas ialah kandungan terperinci Apa yang Menyebabkan InputMismatchException di Java dan Bagaimana untuk Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!