该方法允许用户输入一年中每个月的降雨量。我试图防止小于零的数据存储在数组中。我正在使用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] 删除。
我来说两句