第一个java程序不能正常工作

时间:2015-03-17 11:48:32

标签: 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);
    }
}

3 个答案:

答案 0 :(得分:3)

鉴于您使用了一段时间,我认为您不了解for循环,因此我将避免使用它。

您的代码应该:

  1. 您的初始金额,在任何数字之前,为0
  2. 迭代(即通过值)1到1000之间的值
  3. 如果值可以被3或5整除,请将其添加到总和中。
  4. 打印总和。
  5. 第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);
    

    您的主要错误是使用count和while条件的值检查。单管的误用为或者也是错误。

    希望这有帮助

答案 1 :(得分:1)

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);
        }
    }

答案 2 :(得分:0)

你已将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);
    }
}