2017-03-26 52 views
-8

我已經運行我的代碼巫婆是序列中的第一個,然後我運行了序列中第二個代碼。序列中的第二個將運行,但第一個不會運行。我做錯了什麼?我瀏覽了代碼,看不出任何重要的差異。編碼蝙蝠告訴我,錯誤是「無法找到符號 符號:類VAR行:2」這兩個java代碼有什麼區別?

下面是代碼:

public int diff21(int n) { 
    var diff = Math.abs(n - 21); 
    if (n > 21) { 
    return diff*2; 
    } else { 
    return diff; 
    } 
} 
public int diff21(int n) { 
    if (n <= 21) { 
    return 21 - n; 
    } else { 
    return (n - 21) * 2; 
    } 
} 
+0

那麼你認爲區別是什麼?看起來很像功課...而'var'應該是'int。 –

+3

你覺得'var'在Java中有什麼作用?你知道它與Java * Script *不一樣嗎? – jonrsharpe

+0

看起來你需要在嘗試編寫代碼之前閱讀一些基本的教程。 – Kayaman

回答

1

Java沒有關鍵字「變種」,你需要顯式聲明一個變量。

在你的情況,你需要聲明差異是一個「詮釋」

0

var diff意味着你宣佈一個名爲vardiff變量。什麼是var?編譯器不知道,所以錯誤。

+0

謝謝。我已經嘗試過,但將其更改回您所知道的代碼,因爲我的選項已用完。當我將類更改爲int時,我得到另一個錯誤代碼,說:缺少'}'或表達式的非法開始。不管我做什麼,我都不能讓這個錯誤消失,而我只是看不到運行的代碼和不會運行的代碼之間的區別。 – Trea704

0

var更改爲double,因爲var不是Java原始數據類型。您也可以使用int,但您必須輸入Math.abs。如果您運行代碼,您的代碼將不會編譯爲var

如果要測試它們,請按以下方式進行一些更改。

public class Test { 
public static void main(String[]args){ 
    System.out.println(diff21(10) +" "+ diff22(15)); 
} 
public static int diff21(int n) { 
    int diff = Math.abs(n - 21); 
    if (n > 21) { 
     return diff*2; 
    } else { 
     return diff; 
    } 
} 
public static int diff22(int n) { 
    if (n <= 21) { 
     return 21 - n; 
    } else { 
     return (n - 21) * 2; 
    } 
    } 
}