为什么这个算术在Java中使用mod时等于10而不是0

Mik*_*der 1 java modulus

我正在进行旧测试以进行测试,此代码为longVariable打印10的值.现在,手工,对我来说,数学将是9 + 1%10 = 0的余数,而不是10 ......我怎么错了?

谢谢你的帮忙!

 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); 
}
}
Run Code Online (Sandbox Code Playgroud)

编辑:PEMDAS.以为我明白了.

Mys*_*ial 14

观察您的运营顺序:

intVariable1 + 1 % intVariable2;
Run Code Online (Sandbox Code Playgroud)

是:

intVariable1 + (1 % intVariable2);
Run Code Online (Sandbox Code Playgroud)

所以9 + 1 % 10被解析为9 + (1 % 10).这给了9 + 1 = 10.

%优先级高于+.