这个java for循环有什么问题?

时间:2014-10-02 03:13:03

标签: java for-loop syntax conditional-statements boolean-logic

我试图看看我可以用for循环做些什么很酷的事情。 这是一个简单的代码,用于打印在10_000和100_000之间可被321整除的所有数字。

但它不起作用:

for(int i=10000;i<=100000 && i%321==0;i++){
  println(i);
}

我能否在第二和第三个分号之间放置条件语句是不是真的? 这只是输出任何东西,所以我假设没有我的值是真的。

2 个答案:

答案 0 :(得分:6)

一旦i % 321 == 0为假,循环就会停止,它将立即停止。尝试:

for (int i = 10000; i <= 100000; i++) {
  if (i % 321 == 0) {
    println(i);
  }
}

或者:

for (int i = 10000 + (10000 % 321); i <= 100000; i += 321) {
  println(i);
}

答案 1 :(得分:2)

问题在于你的循环条件。

when (i = 10000)

i % 321 = 10000 % 321 = 49
So the condition i % 321 == 0, is false

你需要尝试这样的事情才能工作

for (int i = 10000; i <= 100000; i++) {
  if (i % 321 == 0) {
    println(i);
  }
}