提问人:Shlok Yeolekar 提问时间:5/7/2021 更新时间:5/7/2021 访问量:53
如何将条件合并到尝试捕获中?
How can I incorporate a condition into a try catch?
问:
此代码不断要求用户输入双精度值,直到用户输入空行。当用户输入非双精度值(如字符串)时,将显示无效的输入消息。目前,即使用户输入空行,也会显示无效的输入消息,我理解原因。当我输入空行时,让无效输入不显示的最佳方法是什么。我不确定是否有办法使用 try-catch,或者我是否只需要使用其他东西。
System.out.println("Type in the polynomials in increasing powers.");
Scanner prompt = new Scanner(System.in);
String input = " ";
double parsed;
int counter = 0;
while (!(input.equals("")) & counter < 10) {
input = prompt.nextLine();
try {
parsed = Double.parseDouble(input);
expression.addCoefficient(parsed);
counter++;
}
catch (NumberFormatException e) {
System.out.println("Invalid input");
}
答:
0赞
something
5/7/2021
#1
while (counter < 10 && !(input = prompt.nextLine()).equals(""))) {
try {
parsed = Double.parseDouble(input);
expression.addCoefficient(parsed);
counter++;
}
catch (NumberFormatException e) {
System.out.println("Invalid input");
}
}
请注意,计数器上的测试需要首先出现。一旦用户犯了 10 个错误,就不要再提问了。
0赞
Yati Sawhney
5/7/2021
#2
您可以使用以下命令在用户按回车键时跳过:
public static void main(String[] args) {
System.out.println("Type in the polynomials in increasing powers.");
String NEW_LINE = "\n";
Scanner sc = new Scanner(System.in);
String input = sc.next();
double parsed;
int counter = 0;
while (counter < 10) {
if (input.equals(NEW_LINE)){
continue;
}
try {
parsed = Double.valueOf(input);
//expression.addCoefficient(parsed);
System.out.println(parsed);
counter++;
}
catch (NumberFormatException e) {
System.out.println("Invalid input");
}
}
评论
tryParseDouble