2012-01-26 70 views
2

我已經做了一個谷歌周圍,但不能讓我的頭在我的代碼在這裏有什麼問題。Java非法開始表達式

我在第一次得到表達錯誤的非法的開始if語句「否則,如果」

我是很新,Java,但想快速學習作爲我計算的要求當然我希望能做到。

任何幫助非常感謝。

import java.util.Scanner; 

public class net_salary{ 

public static void main(String[]args){  
    Scanner in = new Scanner(System.in);  

    int income; 
    int incometax; 
    int afterincometax; 
    int nationalinsurance; 
    int afterni; 
    int pension; 

    income = in.nextInt();  

    if(income = 0) { 
     incometax = 0; 
    } else if (income >=9000 & <=21000) { 
     incometax = income * 0.15; 
    } else if (income >=21000 & <=31000) { 
     incometax = income * 0.2;  
    } else if (income >=31000 & <=50000) { 
     incometax = income * 0.225     
+0

乾杯問題回答。 –

回答

6

你需要else if (income >=9000 && income <=21000)而不是else if (income >=9000 & <=21000)

同樣爲其他else if表達式。

你必須做兩個單獨的收入比較。你不能說「如果收入大於或等於9000或小於或等於21000」。你必須說「如果收入大於9000或收入小於或等於21000」。

&是一個按位與。 &&是邏輯與。

如其他人所述,income = 0應爲income == 0

+0

嗨!,感謝您的答覆,即使雙&&我仍然得到同樣的錯誤。 –

+0

對不起。我一直在添加編輯。查看更新後的答案。 –

+0

幫助一個白癡並告訴我它會是什麼樣子?我得到你的意見,但不知道如何把它放下 - 再次歡呼。 –

1

您的if/else if表達式總是以布爾值(true或false)結果。在Java中,& &代表AND,&是操縱比特的按位運算符。

if(income == 0) 
    { 
     incometax = 0; 

    } 
**else if (income >=9000 && income <=21000)** 
    { 
     incometax = income * 0.15; 
    } 

else if (income >=21000 && income <=31000) 
    { 
     incometax = income * 0.2; 

    } 

else if (income >=31000 && income <=50000) 
    { 
     incometax = income * 0.225 
+0

感謝您的幫助! –

3

你需要& &不&,並重復變量 '收入':

else if (income >=9000 && income <=21000) 

您同時還使用=在這裏你可能意味着==

if(income == 0) 

=分配值,==測試兩個值是否相等。

+0

感謝您的幫助! –

1

if(income = 0)

應該

if(income == 0)

else if (income >=9000 & <=21000)

(和它的追隨者)應

else if (income >=9000 && income <=21000)

並且看起來像你需要使一些變量變爲double而不是int。

+2

您對'else if'塊的評論看起來有些離奇。你在改正的版本中仍然使用按位AND',並且你正在檢查'9000 <= 21000'(爲什麼你會這麼做?)。 – eldarerathis

+1

...我認爲你的意思是檢查收入是否低於21000。 : - \。 –

+1

@ Zyychin:你說得對。編輯。 –

1

檢查Java中「=」,「==」,「&」,「& &」運算符的用法。

public class net_salary{ 
    public static void main(String[]args){ 
    int income, ncometax, afterincometax, nationalinsurance, afterni, pension; 
    Scanner in = new Scanner(System.in); 
    income = in.nextInt(); 

    if(income == 0) { 
     incometax = 0; 
    } else if (income >= 9000 && income <= 21000) { 
     incometax = income * 0.15; 
    } else if (income >=21000 && income <= 31000) { 
     incometax = income * 0.2; 
    } else if (income >=31000 && income <= 50000) { 
    } 
    } 
} 
+0

感謝您的幫助! –