2012-01-26 14 views
2

私はGoogleを使っていますが、ここで自分のコードに間違いがあるかどうかを知ることはできません。Javaの不正な形式の開始

は、私は、Javaにはかなり新しいですが、すぐに私のコンピューティングのその要件として学ぼう「場合エルス」私は最初のif文で表現エラーの不正スタートを取得していますもちろん私はやりたいと思っています。

大変助かりました。

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も同様です。

2つの別々の収入を比較しなければなりません。 「収入が9000以上21000以下」とは言えません。 「所得が9000を超えているか所得が21000以下か」と言う必要があります。

&はビット単位でANDです。 &&は論理ANDです。

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) 

ます。また、使用して=ここで、あなたはおそらく、Aに割り当てる=

if(income == 0) 

==意味していますvalue、==は、2つの値が等しいかどうかをテストします。

+0

ご協力いただきありがとうございます! –

1

if(income = 0)

でなければなりません

if(income == 0)

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

(およびそれのフォロワー)でなければなりません3210

あなたはintの代わりにいくつかの変数を作成する必要があります。

+2

'else if'ブロックに関するあなたのコメントは奇妙なようです。あなたは修正されたバージョンでまだビット単位のANDを使用していて、 '9000 <= 21000'(なぜあなたはそれをやっていますか?)をチェックしています。 – eldarerathis

+1

...あなたは 'income <= 21000'かどうかをチェックするつもりだと思います。 : - \。 –

+1

@Zéychin:そうです。編集されました。 –

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

ご協力ありがとうございます! –

関連する問題