У меня есть код Java, и там я хочу взять целое число от пользователя. Если этот ввод является целым числом, то его тонкий контроль будет проходить дальше, но если вход отличается от целого, элемент управления снова будет проверяться. Проблема в том, что пользователю задается не целое число, а цикл while повторяется снова и снова. Как решить? Пожалуйста, помогите мне.Очистка входного буфера при использовании сканера
Я постарался ответить на вопрос на этом сайте, но не получил никакого результата.
Вот мой код-
import java.io.* ;
import java.util.Scanner;
class A{
int name;
int take_int(){
Scanner data=new Scanner(System.in);
//BufferedWriter BW=new BufferedWriter();
while(true){
int fault_res=0 ;
try{
System.out.print("Enter A Number : ");
//BW.flush();
name=data.nextInt(); // comment : if user give an alphabet
// then the control rounds again and
// again, how to solve? System is not
// taking any input after entering
// any alphabet first time, but it
// should take as per my code, I
// think is is happening due to i/p
// buffer, unable to delete it.
}
catch(Exception E){
System.out.println("\nSomething Went Wrong !!\nRetry Please !!!");
fault_res=1 ;
}
if(fault_res==0){break ;}
}
System.out.println("\nnumber at other class "+name);
return name ;
}
}
class sn{
public static void main(String args[]){
A obA=new A();
int number=obA.take_int();
System.out.println("\nYou have entered "+number);
}
}
Что задает клавиатура.close() ?? –
Он закрывает поток. Выполнение 'keyboard.close' является частью« хорошей практики ». Это не требуется (для правильности программы), но это избавляет программу от утечки памяти. – Nirmal