boolean acceptPcode=true;
boolean acceptQty=false;
int Qty=0;
List<Integer> purchasedProdQty=new ArrayList<>();
while(acceptPcode==true && acceptQty==false){
do{
try{
System.out.print("Enter Qty: ");
Qty=sc.nextInt();
acceptQty=true;
}catch(InputMismatchException ime){
System.out.println("Invalid quantity please enter a number!");
acceptQty=false;
}
if(acceptQty==true)
purchaseProdQty.add(Qty);
}while(acceptQty==false);
}
我的问题是,当我输入一个字母时,它会进入无限循环,并且不会提示用户输入数量......这是
输入数量:数量无效,请输入数字!
输入数量:数量无效,请输入数字!
输入数量:数量无效,请输入数字!......
最佳答案
您忘记读取下一行的 \n
(或 \r\n
)字符。在当前代码中,扫描器正在等待 int
输入,但当前的下一个输入是此换行符。只需在代码中添加 sc.nextLine()
即可使用换行符:
Qty=sc.nextInt();
sc.nextLine();
acceptQty=true;
关于java - 我的代码无限循环并且不再提示用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21631760/