为什么我不能将余数指定给新变量???JAVA

为什么我不能将余数指定给新变量???JAVA,java,operators,modulo,modulus,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

我正在尝试使用模赋值运算符,但不断收到一个系统错误,表示应为“=”而不是“%=”

有问题的代码是最后一行


请帮助

,因为使用
整数余数
是在声明一个变量,而使用
%=

    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; 
相当于

int remainder %= weekDay/7; 
这没有意义,因为您刚刚声明了
余数
,所以它没有以前的值

如果您在前面声明了
余数
变量,这将起作用:

int remainder = remainder % weekDay/7; 

%=不能用于尚未赋值的变量

remainder %= weekDay/7; 
相当于

var %= {value};

但在您使用它的方式中,余数尚未为其指定值。所以这毫无意义。

你可能只是想这么做:

var = var % {value};

因为
%=
无效。只能用“=”分配变量。您正在查找
int rem余数=工作日%7你的意思是
整数剩余=工作日%7?如果不是,你是什么意思?可能是重复的哦,哇,duh。对不起,我睡眠不足。谢谢要使用这样的运算符,变量必须有一个先前的声明和一个先前的值。
int remainder = weekDay % 7;