繁体   English   中英

Java - 如果满足两个条件,如何重新提示用户

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM