0

用 Java 编写程序计算以下内容: 1+2-3+4-5 …-99+100

可以证明这个程序非常简单,但我是 java 的初学者,这就是我到目前为止所拥有的,我不确定我是否走在正确的道路上

我得到一个 java: 13 错误消息 error:not a statement sub;

class Loop{
    public static void main(String[] args){
        int sum=0;
        int sum=0;
        int sub=0;

        while(num<100){

            num++;
            if(num%2 == 0){
                sum=sum+num;
            }
            sub;
            if(num%3== 0||num%5==0||num%7==0){
                sub=sub-num;
            }
        }
        System.out.println("Sum is: " +sum+sub);
    }
}
4

7 回答 7

1

这是抱怨这条线:

sub;

这不是一个有效的指令,这就是编译器对你大喊大叫的原因。

于 2012-07-11T03:59:23.570 回答
1

在下面的:

if(num%2 == 0){
    sum=sum+num;
}
sub;

最后一行sub;不是 Java 语句。你可能想删除它。

更新:


看起来您想要添加偶数并减去奇数(您想要添加的 1 除外)。如果我正确理解了要求:

您可以从声明两个变量开始,如下所示:

int sum = 1; //this will add 1
int n = 2;

循环条件应如下:

while(n <= 100) { //because you want to include 100 also

然后在循环的每次迭代中:

  • 如果n是偶数,则将其添加到 中sum,否则如果n是奇数,则将其从 中减去sum
  • 之后增加n1。

最后,打印 的值sum

于 2012-07-11T04:00:25.457 回答
0
class Loop{
   public static void main(String[] args){
   int sum=0;
   int sum=0;
   int sub=0;

    while(num<100){

     num++;
   if(num%2 == 0){
       sum=sum+num;
   }
   sub; <-- sub is not a statment
   if(num%3== 0||num%5==0||num%7==0){
       sub=sub-num;
       }
   }
   System.out.println("Sum is: " +sum+sub);
  }

}

您走在正确的轨道上,经过一些试验和错误,您将得到它:-) 问题的原因在上面的代码中进行了注释,在您的程序中间,您sub;在自己的行上有一个随机数。sub 在该上下文中没有意义,因此编译器不知道如何处理它。

于 2012-07-11T04:01:08.047 回答
0

好吧,您两次声明“sum”,然后声明“sub;” 不是一个有效的表达式。

class Loop{
public static void main(String[] args){
    int sum=0;
    int sum=0; // second declaration? should probably be num, right? 
    int sub=0;

    while(num<100){

        num++;
        if(num%2 == 0){
            sum=sum+num;
        }
        sub; // what's this doing here?
        if(num%3== 0||num%5==0||num%7==0){
            sub=sub-num;
        }
    }
    System.out.println("Sum is: " +sum+sub);
}

}

于 2012-07-11T04:01:56.827 回答
0

您可以使用简单的方法来实现它:

 public static void main(String[] args) {
    int sum = 1;
    for (int i = 2; i < 100; i++) {
        if (i % 2 == 0) {
            sum = sum + i;
        } else {
            sum = sum - i;
        }
    }
    System.out.println(sum);
}
于 2012-07-11T04:03:25.047 回答
0

1) 你不能有 2 个同名的变量sum
2) 你需要在使用之前声明和初始化一个变量
3) 语句的 sub;含义是什么?

进行上述所有更改并尝试!

于 2012-07-11T04:05:13.427 回答
0

公共类循环{

public static void main(String[] args) {
    int sum = 1;
    int sub = 0;

    for (int i = 2; i <= 100; i += 2)
        //sum =sum+i;
        sum +=i;

    System.out.println(sum);
    for (int i = 3; i <= 100; i += 2)
        sub += i;
    System.out.println(sub);
    System.out.println("Sum is: " +(sum-sub));
}

}

试试这个代码会给你你想要的结果

于 2012-07-11T04:55:39.113 回答