如果在数组中输入的数据小于零,我正在尝试创建错误消息,请输入验证

宠物桑度

该方法允许用户输入一年中每个月的降雨量。我试图防止小于零的数据存储在数组中。我正在使用do-while循环,但似乎无法弄清楚如何检查输入是否小于零。感谢您的帮助,干杯!

public static double[] getRainFall()
    {
        double[] rainfallMonths = new double[12];
        double[] rainfall = new double[12];

        do
        {
            for(int x = 0; x < rainfallMonths.length; x++)
            {
                    System.out.print("What is the rainfall for month #" + (x + 1) + ": ");
                rainfallMonths[x] = keyboard.nextDouble();
                rainfall[x] = rainfallMonths[x];

                if(rainfallMonths < 0)
                {
                    System.out.println("Input is Invalid");
                }
            }
        }while(rainfallMonths < 0);


        for(int count = 0; count < rainfallMonths.length; count++)
        {
            System.out.println("Rainfall Month #" + (count + 1) + ": " + rainfall[count]);
        }

        return rainfall;
    }
疯狂程序员

您的逻辑有些偏离,更不用说您正在尝试将数组与int...

首先,逻辑...

do 
    for x = 0 to rainfallMonths.length -1 do
        ... get input...
while value < 0

这里的问题是,您已经将输入分配给了for-next循环中数组的所有元素,但是随后您尝试验证输入的值,而该值for-next可能永远不会返回有效的结果...而且为时已晚...

相反,您想颠倒逻辑...

for x = 0 to rainfallMonths.length -1 do
    do 
        value = get input from user
    while value < 0
    rainfallMonths[x] = value

接下来,rainfallMonths是对数组的引用,这实际上不是您要检查的对象,您需要检查其中的一个值或元素,例如...

while (rainfallMonths[x] < 0);

如果那都没有道理...

public static double[] getRainFall()
{
    double[] rainfallMonths = new double[12];
    double[] rainfall = new double[12];

    for(int x = 0; x < rainfallMonths.length; x++)
    {
        double input = 0;
        System.out.print("What is the rainfall for month #" + (x + 1) + ": ");
        do {
            rainfallMonths[x] = keyboard.nextDouble();
            rainfall[x] = rainfallMonths[x];
            if(input < 0)
            {
                System.out.println("Input is Invalid");
            }
        } while (rainfallMonths[x] < 0);    
    }


    for(int count = 0; count < rainfallMonths.length; count++)
    {
        System.out.println("Rainfall Month #" + (count + 1) + ": " + rainfall[count]);
    }

    return rainfall;
}

你可能想采取一个进修阵列,这应有助于;)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果在python中小于零,则复制先前的输入

如果在数组搜索中未找到要打印用户输入的语句

如果在cpp中输入了错误的数据类型,如何允许多个输入?

如果在我的服务器中找不到路径,我正在尝试生成自定义错误

如果在Django中输入了任何无效数据,则会在输入字段下方引发表格错误

PHP(如果在表单输入中)

如果在输入中写入内容时单击按钮后显示数据,我该如何解析数据

显示角度(如果在数组中)

AngularJS显示元素(如果在数组中)

如果在单元格中输入的数据匹配范围,则执行Google脚本

我想在数组中创建数组并在其中输入数据

我正在尝试将数据输入parse.com中的custmom列,但出现错误

嗨,我正在尝试将纳斯达克的数据输入到R中,并且出现错误

如果在 Laravel 中验证失败,则返回错误

我怎么能告诉我们,如果在数组列表中的元素相同或不同?

如果在输入语句上选择

如果在可变链接输入上

如果在验证电子邮件时出现错误,请重新加载表单

如果用户输入的长度小于最小长度,则显示错误消息

如果在 python 版本 3 中使用 end="" 给出如下输入,我如何在同一行中打印非文本数据

我正在尝试验证用户输入。但是,如果我输入了无效字符,程序将进入无限循环

如果我使用了多个电子邮件,请输入多个电子邮件验证错误

输入数组验证消息错误 Laravel 5.5

如果在Ruby上匹配条件,如何在数组内部创建数组?

如果用户尝试在输入字段中输入比 maxlength 多的字符,如何显示错误消息?

如果在foreach中发生错误,请继续插入

使用 for 在数组中添加输入错误

如果在 php 中获得重复值,则在数组中添加值

如果在创建 Easy Table api 之前存在数据,为什么我的 Xamarin 应用程序不从 Azure 返回数据?