Kekecewaan NoSuchElementException dengan Java.Util.Scanner
Menghadapi ralat "NoSuchElementException" boleh membingungkan, terutamanya untuk pemula Java seperti anda. Ralat ini berlaku apabila kelas Pengimbas tidak boleh mendapatkan semula token seterusnya daripada aliran input. Mari kita mendalami kod khusus anda untuk mendedahkan punca utama:
import java.util.Scanner; public class Addition { public static void main(String[] args) { Scanner input = new Scanner(System.in); int number1; // first number to add int number2; // second number to add int sum; // sum of 1 & 2 // Problem: Reading input values without checking for input availability System.out.print("Enter First Integer: "); number1 = input.nextInt(); // Exception occurs here when no input is provided System.out.print("Enter Second Integer: "); number2 = input.nextInt(); // Exception occurs here if input is not available for this prompt sum = number1 + number2; // Addition occurs, assuming input values are available System.out.printf("Sum is %d\n", sum); // Displays the sum, if input is available } }
Masalahnya terletak pada kod yang cuba membaca input tanpa terlebih dahulu mengesahkan sama ada input tersedia. Kaedah input.nextInt() menimbulkan "NoSuchElementException" jika pengguna tidak memberikan input atau memasukkan sesuatu selain daripada integer.
Penyelesaian:
Untuk menghapuskan isu ini, kami perlu menyemak ketersediaan input sebelum cuba mendapatkan semula ia:
if (input.hasNextInt()) { number1 = input.nextInt(); } else { // Handle the case where no input is provided }
Penjelasan:
Kaedah hasNextInt() menyemak sama ada token seterusnya dalam aliran input ialah integer. Jika ia kembali benar, kaedah input.nextInt() boleh digunakan untuk mendapatkan semula integer. Jika tidak, kod itu boleh mengendalikan situasi dengan anggun, seperti menetapkan nombor1 kepada 0 atau memaparkan mesej ralat.
Dengan melaksanakan semakan ini, kod anda tidak lagi akan membuang "NoSuchElementException" dan akan berfungsi seperti yang diharapkan, membenarkan pengguna untuk memasukkan integer dan mengira jumlah mereka.
Atas ialah kandungan terperinci Mengapa Pengimbas Java Saya Membuang NoSuchElementException, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!