赋值的左侧必须是变量

时间:2014-10-31 19:43:34

标签: java

很多人在使用CharAt语句时都会遇到这个问题,但我在实现像(a + 1)这样的简单内容时遇到了麻烦。

我的代码:

public class Problem1 {

public static void main(String[] args) {

    int a = 1;
    int x = 0;

            while (a < 1000)
                if 
                    ((a + 1)%3 == 0) 
                            (x + a);

                    else if ((a + 1)%5 == 0)
                        (x + a);

                        else (a + 1);
                if (a == 1000)
                    break
                    print x;

}
}

我的错误发生在(x + a)then语句和my(a + 1)then语句中。尝试打印x时,我也遇到语法错误。

有人可以向我解释这两个错误吗?它们为什么会出现?

提前致谢!

2 个答案:

答案 0 :(得分:3)

您不能将添加结果分配给任何内容。您在break上缺少分号。你并没有增加a。对print的调用缺少括号,但我认为您想使用System.out.println()。并且,我建议您使用括号(即使在单行语句中)。总而言之,我相信你想要的东西,

while (a < 1000) {
  if ((a + 1) % 3 == 0) {
    x = (x + a);
  } else if ((a + 1) % 5 == 0) {
    x = (x + a);
  } else {
    x = (a + 1);
  }
  if (a == 1000) {
    break; // <-- missing semicolon.
  }
  System.out.println(x); // <-- print.
  a++; // <-- increment a.
}

最后,您可以使用or,然后使用+=

while (a < 1000) {
  if ((a + 1) % 3 == 0 || (a + 1) % 5 == 0) { 
    x += a;
  } else { 
    x += a + 1;
  }
  if (a == 1000) {
    break;
  }
  System.out.println(x);
  a++;
}

答案 1 :(得分:2)

(x + a)等一些代码本身无效。您必须将值也赋值为变量,例如int n = (x + a)

此外,在break语句后必须有分号;

最后,Java中没有print语句。您正在寻找的是:

System.out.println(x);

希望有所帮助,祝你好运!