私はちょうどJavaを学び始めたので、私の質問はおそらく信じられないほど馬鹿です。なぜループは5の倍数を無視しますか?
私は最も単純な問題の1つを解決しようとしています。
3または5の倍数だけが合計で考慮されるように前のプログラムを変更します。 3、5、6、9、10、12、15 N =ここ17
は私のコードがある:私はそれを実行すると
import java.util.Scanner;
public class NewProblem {
public static void main (String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
for (int i = 0; i < n; i++) {
if (i % 5 == 0 || i % 3 == 0) {
System.out.println(i);
}
else {
i++;
}
}
}
}
、これは3つのだけ倍数を示します。
だからそれだけで5
何が問題になっていますが、すべての倍数を無視します。たとえば、ここでのn = 17の出力がありますか? 質問が本当にばかげている場合は再び申し訳ありません。
elseにはi ++が含まれています。forループ中に1つの要素 –
をスキップします。ループが再び開始されると、自動的にiがインクリメントされます。あなたが 'else'ステートメントで' i ++ 'を実行すると、あなたは1をインクリメントし、ループのために1をインクリメントします。たとえば、 'i = 1'の場合、' else'文に落ちて 'i = 2'を返します。ループが戻ってくると、 'i = 3'が得られます。だから、 'i = 2'は即座にインクリメントされたので、あなたのコードで実際には処理されませんでした。 – Tuma
「10」は「3」ではなく「5」の倍数である。 – Ravikumar