需要 For Loop 协助

For Loop assistance needed

我需要编写一个 for 循环来打印从 1000 到 4 的数字,这些数字是 6 的倍数,每行一个数字。

据我所知,我的结构是正确的。

    public class multiples
    {
        public static void main(String[] args)
        {
            for(int a = 1000; a < 4; a % 6 == 0);
            {
                System.out.println("a = " + a);
            }
        }
    }

我不断收到这些错误

    multiples.java:5: error: not a statement
            for(int a = 1000; a < 4; a % 6 == 0);
                                           ^
1 error

我将如何实现这段代码的倍数部分?或者纠正这个错误?

您需要从 1000 到 4 的正确数字。 for 循环接受 for(init ; condition ; update)。您可以在 for 循环中尝试以下操作:

for(int a = 1000; a >= 4; a--) {
  if (a % 6 == 0)
    System.out.println("a = " + a);
}

for 循环的第三部分是增量(或者在你的情况下是减量),第二部分控制主体的评估(并且 1000 永远不会小于 4),分号也终止循环体(然后你有一个匿名块)。试试像

for (int a = 1000; a >= 4; a--) {
    if (a % 6 == 0) {
        System.out.println("a = " + a);
    }
}

您可以将其理解为从 1000 到 3 的循环,每次迭代时将值减一,如果当前值可以被 6 整除,则显示该值。

当然,你可以像这样优化你的程序

for (int a = 996; a >= 6; a -= 6) {
    System.out.printf("a = %d%n", a);
}

这也将输出 6 的每一个倍数,并通过使用整数数学除以 1000/6 得到 166 来确定。并且 166*6 = 996。当然,6 是 6 的第一个大于 4 的倍数。

这里是 for 循环的结构:

for(<variable declaration or init>; <boolean expression>; <statement>)

语句需要将变量赋值给某物(循环后的动作有运行)

修改后的代码如下:

for(int a = 1000; a >= 4; a--) {  //start with 1000, minus one everytime. (decrement your a variable)
    if (a % 6 == 0) //is "a" a multiple of 6?
    System.out.println("a = " + a);
}

你的 for 循环语法本身是错误的。

for (initialization; termination; increment) {
    statement(s)
}

并尝试此代码

for(int a = 1000; a > 4; a--)  // decrement here
{
  if (a % 6 == 0)    // you have to apply condition here only for the correct logic
    System.out.println("a = " + a);
}