【问题标题】:Why cant I assign a remainder to a new variable??? JAVA为什么我不能将余数分配给新变量??? JAVA
【发布时间】:2015-09-22 19:33:03
【问题描述】:
    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 = weekDay%7; 吗?如果不是,你是什么意思?
  • 哦哇,duh.sorry我睡眠不足。谢谢!
  • 要使用这样的运算符,变量必须具有先前的声明和先前的值。

标签: java operators modulo modulus


【解决方案1】:
int remainder %= weekDay/7; 

相当于

int remainder = remainder % weekDay/7; 

这是没有意义的,因为你刚刚声明了remainder,所以它没有以前的值。

如果您之前声明了 remainder 变量,这将起作用:

remainder %= weekDay/7; 

【讨论】:

    【解决方案2】:

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

    var %= {value};
    

    等价于

    var = var % {value};
    

    但是在您使用它的方式上,剩余部分还没有分配给它的值。所以没有意义。

    【讨论】:

      【解决方案3】:

      你可能只是想这样做:

      int remainder = weekDay % 7;
      

      【讨论】:

        【解决方案4】:

        因为int remainder 声明了一个变量,而%= 无法实现它的初始化

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-12-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-06-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多