【发布时间】:2016-09-26 23:56:41
【问题描述】:
我已经成功编译了这个 java 程序(它生成 100 个 0 到 25 之间的随机数,将它们放入一个数组中,并根据每个数组是偶数还是奇数将它们分类为两个不同的数组),尽管它没有运行。我怀疑我在其中一个 while 循环上犯了一个错误,尽管我不确定。此外,我努力在问题中正确格式化代码,因此选项卡有些偏离,但它仍然大部分清晰易读。这是 .java 文本:
public class Assignment8
{
public static void main( String [] args )
{
int storage [] = new int[100];
int j = 0;
while ( storage.length < 100 ) {
int testVariable = 0 + (int) (Math.random() * ((25 - 0) + 1));
storage[j] = testVariable;
j++;
}
int oddArray[] = OddNumbers( storage );
int evenArray[] = EvenNumbers( storage );
int currentNumber = 0;
System.out.println( "The odd numbers are: " + "\n" );
while ( currentNumber <= 99 ) {
System.out.println( oddArray[currentNumber] + "\n" );
currentNumber++;
}
System.out.println( "\n" + "The even numbers are: " + "\n" );
currentNumber = 0;
while ( currentNumber <= 99 ) {
System.out.println( evenArray[currentNumber] + "\n" );
currentNumber++;
}
}
public static int[] OddNumbers( int storage[] )
{
int currentNumber = 0;
int currentValue = storage[currentNumber];
int oddArray[] = new int[100];
while ( currentNumber <= 99 ) {
if ( storage[currentNumber] % 2 != 0 ) {
oddArray[currentNumber] = currentValue;
} else {
continue;
}
currentNumber++;
}
return oddArray;
}
public static int[] EvenNumbers( int storage[] )
{
int currentNumber = 0;
int currentValue = storage[currentNumber];
int evenArray[] = new int[100];
while ( currentNumber <= 99 ) {
if ( storage[currentNumber] % 2 == 0 ) {
evenArray[currentNumber] = currentValue;
} else {
continue;
}
currentNumber++;
}
return evenArray;
}
}
【问题讨论】:
-
开始的地方是在您的 IDE 调试器中一次单步执行代码。你已经这样做了吗?如果是这样,请告诉我们您发现哪些不明白的地方。
-
请包含示例输出或错误。
-
这是题外话,但为什么写
25 - 0而不是25 -
我建议您使用 IDE 来 a) 格式化您的代码,b) 帮助您调试它。顺便说一句,您可以用大约 5 行代码编写此代码。
标签: java arrays while-loop