我需要写一个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
我如何实现此代码的倍数部分?或者补救这个错误?
答案 0 :(得分:3)
for
循环的第三部分是增量(或者在你的情况下是减量),第二部分控制主体的评估(并且1000永远不会小于4),分号也终止循环body(然后你有一个匿名块)。尝试像
for (int a = 1000; a >= 4; a--) {
if (a % 6 == 0) {
System.out.println("a = " + a);
}
}
你可以读取为1000到3的循环,每次迭代时将值减1,如果当前值可被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。
答案 1 :(得分:1)
您需要1000到4之间的数字。 for
循环接收for(init ; condition ; update)
。您可以在for循环中尝试以下操作:
for(int a = 1000; a >= 4; a--) {
if (a % 6 == 0)
System.out.println("a = " + a);
}
答案 2 :(得分:0)
这是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);
}
答案 3 :(得分:0)
您的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);
}