1

私はテスト用の古い試験に取り組んでおり、このコードは longVariable の値 10 を出力しています。さて、私にとっては、数学は 9 + 1 % 10 = 10 ではなく 0 の残りになるでしょう... これについてどのように間違っているのでしょうか?

助けてくれてありがとう!

 public class ExamSectionA
{
    public static void main(String[] args)
{
    int intVariable1 = 9;
    int intVariable2 = 10;
    double doubleVariable = 11.2;
    char charVariable = 'A';
    long longVariable;
    longVariable = intVariable1 + 1 % intVariable2;
    intVariable2 = (int) (doubleVariable / 10f);
    String[] theirSalary = {"10","20","30","40"};
    System.out.println(intVariable2);
    System.out.println(longVariable); 
}
}

編集:PEMDAS。私はそれを手に入れたと思います。

4

3 に答える 3

14

操作の順序に注意してください。

intVariable1 + 1 % intVariable2;

は:

intVariable1 + (1 % intVariable2);

として解析9 + 1 % 10されてい9 + (1 % 10)ます。これは を与え9 + 1 = 10ます。

%より優先度が高い+

于 2012-02-29T18:09:55.700 に答える
3

% 演算子は + よりも優先度が高くなります。詳細はこちら

Corrected code: (intVariable1 + 1) % intVariable2;
于 2012-02-29T18:12:26.267 に答える
1

代わりにということ(9+1) % 10ですか?

于 2012-02-29T18:11:53.487 に答える