我有一个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);
}
}
什么是keyboard.close()的工作? –
它关闭流。做'keyboard.close'是“好习惯”的一部分。它不是必需的(对于程序的正确性),但它可以避免内存泄漏。 – Nirmal