2016-04-19 20 views
1

コードのガイダンスを少し期待しています。最初のビット(下記参照)では、与えられた値をかなり追加するインスタンスメソッドを作成しようとしています。私の問題は、私は表現の誤りの不正な開始を続けているということです。なぜ誰かが私にはうまく見えるので、なぜ説明することができるだろうかと思っていたのですか?私がエラーメッセージを受け取っているコードの部分だけを投稿したことに留意してください。Javaでの式エラーの不正な開始の受信

EDIT私は実際に何らかの理由で私が奇妙なエラーを受け取っていたので、この質問を1秒間バックアップしたかったのです。私はコードを完了することができたが、私はそれがIllegalArgumentExceptionを述べてテストするときにエラーメッセージが表示されます:選択された文字が無効です。 T、D、またはEでなければなりません。指定されたデータ84は無視されます。なぜ私はこれらの文字を選択しているので、エラーメッセージが表示されているのだろうと私は疑問に思っていると私は数字として84を使用していない。

public int addNewValue (char amtType, int amount) { 
    Scanner keyboard= new Scanner (System.in); 
    System.out.println("Please enter the amount in dollars"); 
    amount=keyboard.nextInt(); 

    System.out.println("Please select the amount Type: T-Ticket Sales," 
      + " D-Donations, E-Expenses"); 
    amtType=keyboard.next().charAt(0); 

    if (amount<=0) { 
     throw new IllegalArgumentException("Amount must be positive and " 
       + "non-zero. The given data " +amount+ " will be ignored."); 

//below is where I recieve the error message 

    }else if (amtType !=T&&!=D&&!=E) { 
      throw new IllegalArgumentException ("The letter chosen is invalid." 
        + "Must be T, D, or E. The given data " +amtType+ 
        " will be ignored"); 
     }else{ 
     return amount + amtType; 
    } 
} 
+1

'amtType!= T |!= D |!= E'それはなんですか? –

+1

おそらく 'if((amtType!= 'T')&&(amtType!= 'D')&&(amtType!= 'E'))' –

+0

#Demorgan'sTheorem。 – kpie

答えて

2

しようとすると、このような条件書き込むために:&&代わりの||を使用して

}else if (amtType !='T' && amtType !='D' && amtType !='E') { 

をし、文字をチェックするために'単一引用符を使用します。

+0

これで解決しました。どうもありがとうございました! –

関連する問題