为什么我不能为新变量分配余数??? JAVA

时间:2015-09-22 19:33:03

标签: java operators modulo modulus

    int d = year%100;
    int c = year/100;
    int valueA = (int)(((13*monthnumber)-1)/5);
    int valueB = (int) d/4;
    int valueC = (int) c/4;

    int weekDay = (d + valueA + d + valueB + valueC - 2*c);

    int remainder %= weekDay/7; 

我试图使用模数赋值运算符,但不断收到系统错误,说明' ='预期而不是'%='

有问题的代码是最后一行

请帮助

4 个答案:

答案 0 :(得分:2)

int remainder %= weekDay/7; 

等同于

int remainder = remainder % weekDay/7; 

这是没有意义的,因为你刚刚宣布remainder,所以它没有以前的值。

如果您之前声明了remainder变量,则可以使用:

remainder %= weekDay/7; 

答案 1 :(得分:2)

%=不能用于尚未分配值的变量。

var %= {value};

相当于

var = var % {value};

但是在你使用它的方式中,余数还没有分配给它的值。所以没有任何意义。

答案 2 :(得分:1)

因为您使用int remainder声明了一个变量,并且使用%=无法实现其初始化

答案 3 :(得分:1)

你可能只是想这样做:

int remainder = weekDay % 7;