第一个java程序不工作



我是Java的新手,这是我第一次尝试编写程序:我需要写一个程序,打印所有较小的正整数的和大于1000,除以3或5。这是我(糟糕的)尝试。编译后,它只是接收数字并显示它们:

import java.util.Scanner;
public class ex1 {
    public static void main(String[] args) {
        int num=1;
        int count = 1;
        while (count <=1000) {
            if (count%3==0|count%5==0){
                count = count+num;
                count++;
            }
        }
        System.out.println(count);
    }
}

如果你使用了一段时间,我想你不知道for循环,所以我会避免使用它。

您的代码应该:

  1. 在任何数字之前,您的初始总和为0
  2. 对1到1000之间的值进行迭代(即遍历值)
  3. 如果这个值可以被3或5整除,就把它加到一个和上
  4. 打印总额

点1):

int sum = 0;

点2):

int value = 1;
while (value <= 1000) {
   //do point 3
   value++;
}

点3):

if ((value%3==0) || (value%5==0)) {
  sum = sum + value;
}

点4):

System.out.println(sum);

综合起来:

int sum = 0;
int value = 1;
while (value <= 1000) {
  if ((value%3==0) || (value%5==0)) {
    sum = sum + value;
  }
  value++;
}
System.out.println(sum);

您的主要错误是对while条件的总和和值检查都使用count。将单管误用为或也是一个错误。

希望这能帮助

public class Test {
      public static void main(String[] args) {
            int num=1;
            int sum=0;
            while (num <=1000) {
                if (num%3==0||num%5==0){
                    sum = sum +num;
                }
                num++;
            }
            System.out.println(sum);
        }
    }

您已将count++放入if块中。这意味着,如果这个数字可以被3或5整除,那么你就是在增加count。把它放在if块的外面。我把你的代码重写如下-

import java.util.Scanner;
public class ex1 {
    public static void main(String[] args) {
        int sum = 0;
        int count = 1;
        while (count <=1000) {
            if (count%3==0||count%5==0){
                sum = sum + count;
            }
            count++;
        }
        System.out.println(sum);
    }
}

最新更新