0

1000未満の3または5のすべての倍数の合計を求めます。

私のプログラムは、3と5のすべての倍数を吸い上げるように機能しますが、1000まで実行すると、363以降の3と5の倍数しか出力されません。

私の質問は、なぜですか?これは私のコードです:

class threeAndFive {
    public static void main(String[] args) {
        for(int i = 1; i < 1000; i++) {
            if (i % 3 == 0) {
                System.out.println(i);
            } else if (i % 5 == 0) {
                System.out.println(i);
            } else if (i % 3 == 0 && i % 5 == 0) {
                System.out.println(i);
            }
        }
    }
}

出力のサンプル:

出力の最初の7行は

363
365
366
369
370
372
375

出力の最後の7行は

985
987
990
993
995
996
999

では、なぜ、私のforループで判断すると、3から999まで繰り返す必要がある場合、出力は363で開始されますか?

編集

数字を印刷するのではなく、SUMを見つけることを目的としていることがわかりました。いずれにせよ、私の質問はまだ残っています。

4

2 に答える 2

3

コードは完全に機能しています。IDE(おそらくEclipse)は単に表示室を使い果たしており、前の行は表示されません。出力コンソールに保存される行数を設定することができます。また、数字の間にスペースを入れて数字を印刷し、その方法で制限を回避することもできます。

于 2012-11-12T06:46:43.480 に答える
1

ifステートメントの順序もロジックの観点から間違っています。

if (i % 3 == 0 && i % 5 == 0) 
{
       System.out.println(i);
}
else if (i % 3 == 0) 
{
       System.out.println(i);
} 
else if (i % 5 == 0) 
{
    System.out.println(i);
} 
于 2012-11-12T06:46:58.203 に答える