我是新来的java,并有以下问题。我已经发现一对夫妇对这个答案的,但仍然很不清楚如何执行而块来解决这个问题:重试在try-catch中的尝试块在java
在下面的代码,我想收到有关“产品名称”和“价格信息'来自用户输入。产品名称是使用scanner.next()函数检索的字符串,价格是双倍。如果用户提供的产品名称与使用空格不正确相同,则会在catch块中捕获扫描器类引发错误。 问题是我该如何返回到try块并为用户提供第二次输入产品名称值而不是退出系统的机会?我在这个问题上做了很多搜索,但仍然没有找到解决方案。
String[] sArrProdName = new String[newUser.getNumberOfItemsInStock()] ;
double[] sArrPrice = new double[newUser.getNumberOfItemsInStock()];
for(int i=0;i<newUser.getNumberOfItemsInStock();i++)
{
try {
System.out.println("Enter product Name: ");
sArrProdName[i]= s.next();
System.out.println("Price? : ");
sArrPrice[i] = s.nextDouble();
}
catch (InputMismatchException e) {
prompt("Enter product name correctly");
}
}
你有使用'break'声明试图用一个无限循环(或有限的循环)在'try'块?或者在'try'块中设置为true的布尔型循环?你应该可以自己做这些提示 – Dici
欢迎来到Stack Overflow!请查看我们的[SO问题清单](http://meta.stackoverflow.com/questions/260648/stack-overflow-question-checklist)来帮助你提出一个好问题,从而得到一个很好的答案。 –
如果你在一个函数下使用这个函数,比在函数中抛出InputMismatchException e更好,并且在for循环中调用这个方法的地方捕获它。 –