2014-05-22 27 views
-1

我對Java完全陌生,並沒有絲毫的線索。我已經'教'了幾個月,但我仍然很難理解它。我如何解決Bubblesort中缺少的return語句?

這裏是我的代碼給錯誤:

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
import java.io.*; 
import java.util.*; 

public class Bubblesort { 

    private int x,y,n; 
    private int arr[]; 

    public Component createComponents() { 
    int temp; 
    for (int x = 0; x < n - 1; x++) { 
     for (int y = x + 1; y < n; y++) { 
     if (arr[x] > arr[y]) { 
      temp = arr[y]; 
      arr[y] = arr[x]; 
      arr[x] = temp; 
     } 
     } 
    } 
    } 
} 

我已經嘗試了一些隨機return語句,但就像我說..我真的不知道我在做什麼,所以什麼我必須做什麼?

+0

老實說,如果你已經幾個月*的課程,仍然有*這些*基礎知識的問題,考慮改變課程。 – Durandal

回答

0

如果你真的想返回的東西,你應該返回一個int數組,而不是一個組件的,就像這樣:

public int[] createComponents() { 
    int temp; 
    for (int x = 0; x < n - 1; x++) { 
     for (int y = x + 1; y < n; y++) { 
     if (arr[x] > arr[y]) { 
      temp = arr[y]; 
      arr[y] = arr[x]; 
      arr[x] = temp; 
     } 
     } 
    } 
    return arr; 
    } 
+0

如果你想返回數組,你應該有一個引用它。 public int [] createComponents(int [] arr){...} – pshemek

0

因爲你的函數是在那個月底類型組件你需要在你的功能

return foo; 

儘管底部在這種情況下,我回一個組件

Component x = foo; 

然後d建議您輸入int[]或輸入void,您不必有返回語句。就個人而言,我推薦後者,因爲這是我通常的做法,因爲你的數組是公開的,因此不需要返回任何東西,所以它更符合你的代碼。

0

有幾個問題與您的代碼:

  1. 的createComponents()應該返回一個int []不是一個組件。
  2. arr永遠不會被初始化。在您的班級中創建一個構造函數,用 用數值初始化該數組。
  3. 在類中創建一個main()方法,這樣你就可以實例化一個冒泡對象,並調用 的createComponents()
+0

createComponents()應該返回組件[] – pshemek

+0

我甚至不知道爲什麼組件在討論中。 OP沒有說清楚。但是這似乎是一個排序程序,並且該方法正在操作一個名爲arr的int []。所以我假設它應該返回一個int []。該方法對Component對象沒有任何作用。 –

0

我會建議在任何語言實現算法之前,你應該先寫一個僞代碼,然後繼續執行。像這樣的泡沫排序算法的實現當然不是學習和實現Java技術的最佳方式。我會推薦首先通過一些Java教程,讓你的手與「Hello World」並瞭解的基礎知識。最好的運氣!