运行时错误。试图生成随机的整数

时间:2016-01-06 18:53:57

标签: java compilation runtime-error

我正在尝试运行此程序,但我收到一个奇怪的运行时错误消息(运行时错误),我得到一个带有黄色惊叹号和Java咖啡杯的弹出窗口。消息显示“无法启动Java类文件Account.class。请检查控制台是否有可能的错误消息。”我检查了控制台,但没有看到任何错误。谁能看到这个程序有什么问题?非常感谢所有的帮助。我在Mac上使用BlueJ来编写,编译和运行该程序。

import java.util.Random;
public class ArrayDemo
{
public static void main ( String[] args )
{
    System.out.println("Begin Program");
    int arr[] = new int[100];
    Random randomGenerator = new Random();
}

public static int[] calculateEven ( int[]a )
{
    int arr[] = new int[100];
    int idx = 0;

    for ( int j = 0; j < a.length; j++)
    {
        if (a[j]%2==0)
        {
            arr[idx] = a[j];
            idx++;
        }
    }
    return arr;
}

public static int[] calculateOdd ( int[]b )
{
    int arr[] = new int [100];
    int idx = 0;

    for ( int i = 0; i < b. length; i++)
    {
        if (b[i]%2!=0)
        {
            arr[idx] = b[i];
            idx++;   
        }   
    }
    return arr;
 }   
}

1 个答案:

答案 0 :(得分:0)

试试这段代码。

它将首先打印偶数,然后打印奇数。

在main方法中添加方法调用并正确声明并使用随机数生成器。

工作正常。但是,当您在调用的两个方法中将数组的大小声明为100时,将打印尾随0,并且它们没有那么多的值。

public static void main ( String[] args )
{
    System.out.println("Begin Program");

    int arr[] = new int[100];
    Random randomGenerator = new Random();

    for (int i = 0 ; i < arr.length; i ++){
        arr[i] = randomGenerator.nextInt(100);
    }
    int even[] = calculateEven (arr);
    int odd[] =  calculateOdd (arr);

    System.out.println("Printing Even");
    for (int i = 0 ; i < even.length; i ++){
        System.out.println(even[i]);
    }

    System.out.println("Printing Odd");
    for (int i = 0 ; i < odd.length; i ++){
        System.out.println(odd[i]);
    }
}

public static int[] calculateEven ( int[]a )
{
    int arr[] = new int[100];
    int idx = 0;


    for ( int j = 0; j < a.length; j++)
    {
        if (a[j]%2==0)
        {
            arr[idx] = a[j];
            idx++;
        }
    }
    return arr;
}

public static int[] calculateOdd ( int[]b )
{
    int arr[] = new int [100];
    int idx = 0;

    for ( int i = 0; i < b. length; i++)
    {
        if (b[i]%2!=0)
        {
            arr[idx] = b[i];
            idx++;   
        }   
    }
    return arr;
}