我有一個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