Scanner's nextInt() Mishap: Memahami NoSuchElementException
Apabila cuba mendapatkan integer menggunakan kaedah Scanner's nextInt(), anda mungkin menghadapi ralat yang ditakuti: NoSuchElementException. Ini timbul apabila tiada lagi integer tersedia untuk mendapatkan semula daripada strim input.
Untuk menentukan puncanya, kami meneliti coretan kod:
Scanner s = new Scanner(System.in); int choice = s.nextInt(); // Error occurs here s.close();
Kaedah nextInt() menganggap bahawa integer sedang menunggu untuk dibaca, tetapi dalam kes kami, mungkin tidak ada satu. Untuk mengelakkan ralat ini, kami boleh memanfaatkan kaedah hasNextXXXX() yang disediakan oleh Pengimbas. Kaedah ini mengesahkan ketersediaan jenis data yang sesuai, memastikan bahawa input sedia untuk diambil semula.
Dalam senario khusus ini, kami boleh membetulkan isu tersebut dengan menggunakan hasNextInt():
Scanner s = new Scanner(System.in); int choice = 0; if (s.hasNextInt()) { choice = s.nextInt(); } s.close();
Semakan hasNextInt() memastikan integer wujud sebelum cuba mendapatkannya dengan nextInt(). Ini menghapuskan kemungkinan NoSuchElementException.
Jadi, ingat, apabila berurusan dengan kaedah nextInt() Scanner, sentiasa gunakan hasNextInt() untuk menjamin bahawa integer sedang menunggu untuk digunakan.
Atas ialah kandungan terperinci Mengapa Saya Mendapat NoSuchElementException Apabila Menggunakan NextInt() Pengimbas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!