2015-11-22 83 views
0

我想調用這個方法從用戶輸入中輸入一個座標點。如何調用一個不返回任何東西的方法?

public class Cases { 

public static Result Case1(){ 
    Scanner in = new Scanner(System.in); 
    System.out.println("Enter index: "); 
    int i = in.nextInt(); //validate 
    System.out.print("Enter integers x, y to replace: "); 
    int x = in.nextInt(); 
    int y = in.nextInt(); 
    A[i] = new Point(x, y); 

    if(occupancy<i) 
     occupancy=i; 
    } 
} 

,但我不知道如何使它工作,因爲它並不需要一個return語句。

這是我如何把它稱爲從我的主要方法:

Result r = null; 
r = Cases.Case1(); 

我想我所有的情況下,從switch語句到這個單獨的方法,但我不能,甚至讓他們的一個工作。我錯過了什麼?

+0

編輯:對不起,我認爲你*做*需要在這裏返回聲明,這可能是問題。 (是的,我的編譯器說「缺少return語句」。另外A和佔用是未定義的。) – markspace

+1

'Cases.Case1()'返回一個'Result'對象。它不會那樣編譯。您應該將返回類型更改爲void,並改變您稱之爲的方式(您不必將其分配給引用變量)。 –

回答

5

在Java中有一種聲明方法的結構。從documentation

...方法聲明有六個部分組成,依次是:

  1. 改性劑,如公共,私有,和其他人你將學習後約 。
  2. 返回類型 - 方法返回的值的數據類型, 或者如果方法沒有返回值,則返回void。
  3. 方法名稱 - 字段名稱的規則適用於方法名稱爲 ,但是該約定稍有不同。
  4. 圓括號中的參數列表 - 輸入 參數的逗號分隔列表,前面帶括號括起來的數據類型 ()。如果沒有參數,則必須使用空括號。
  5. 一個例外列表 - 稍後討論。
  6. 方括號,括在大括號 - 方法的代碼, 包括局部變量的聲明,在這裏。

所以,如果你需要,沒有任何返回類型申報方法,需要在第二個位置寫void

在你的代碼

public static Result Case1(){ 

有返回類型Result,你需要返回。如果不想返回它 - 申報方法是這樣的:

public static void Case1(){