2016-01-06 68 views
0

我想運行這個程序,但得到一個奇怪的運行時錯誤消息(運行時錯誤),我得到一個黃色感嘆號和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; 
} 
} 
+2

該代碼沒有運行時錯誤。它必須是你的環境問題。 – resueman

+0

@resueman它編譯並運行並生成,然後打印機器上的號碼? – Skier1999

+0

它不會打印任何數字(因爲您的代碼現在不會調用'calculate'方法中的任何一個(儘管我確實添加了一些代碼來調用它們以確保它們已經運行)),但它會打印「Begin Program 「消息,併成功退出。 – resueman

回答

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; 
} 
+0

該程序似乎只在我的機器上打印0。它是怎麼做到的,而不僅僅是做該計劃的目標是什麼?創建randoms然後排序然後打印它們?感謝所有的幫助,但我仍然不明白爲什麼我的工作不正常 – Skier1999

+0

@ Skier1999請嘗試以下鏈接。 http://goo.gl/Us18kK。首先編譯然後執行。然後檢查輸出。希望能幫助到你。你可以在那裏得到整個代碼。 –