[英]Java - how to reprompt user if two conditions are met
谁能帮我修复下面的代码? 我应该创建一个包含 10 个双打的数组/列表,并允许用户键入“99999”退出。 如果没有输入双精度值,我也应该给用户一个错误,即如果用户在任何双精度值之前输入'99999'。
我知道我可以在 while 循环的末尾放置一个 "if (doubleList.isEmpty()) 并以这种方式结束程序,但我想尝试弄清楚如何在用户输入时继续提示用户输入值99999 第一个。
我尝试在 while(true) 循环中输入“if(doubleList.isEmpty())”,但无法使其工作。
我下面的解决方案有些工作,但并不完全。 它
有什么建议? 谢谢!
import java.util.*;
public class DistanceTesting
{
public static void main(String[] args)
{
//Almost works, but not quite. I can't figure out how to reprompt the user if the list is empty
List<Double> doubleList = new ArrayList<>();
int count = 0;
double sum;
double average;
double number;
Scanner input = new Scanner(System.in);
System.out.println("Enter up to 10 doubles: ");
number = input.nextDouble();
if (number == 99999)
{
System.out.println("Error: you must enter at least one double.");
}
while (true)
{
count++;
System.out.println("Enter a double(or press 99999 to quit): ");
number = input.nextDouble();
if (number == 99999)
{
break;
}
if (count == 10)
{
break;
}
else
{
doubleList.add(number);
}
}
}
}
如果我正确理解您的问题,您将希望将if(doubleList.isEmpty())
放在if (number == 99999)
块中,并删除 while 循环之前的行并在循环内处理它。
if (number == 99999)
{
if(doubleList.isEmpty())
{
System.out.println("Error: you must enter at least one double.");
count--;
continue;
}
else
{
break;
}
}
当用户输入 99999 时,它会检查列表是否为空。 如果是,打印错误,减去计数(因为他们没有输入你想要的双精度数),然后continue
从循环的开始重新开始,再次提示他们
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.