【问题标题】:What's wrong with this java for loop?这个java for循环有什么问题?
【发布时间】:2014-11-27 00:55:36
【问题描述】:

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

但它不起作用:

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

我可以在第二个和第三个分号之间放置条件语句不是吗? 这只是什么都不输出,所以我假设没有 i 值是真的。

【问题讨论】:

  • 如果i = 10000i % 321 == 0
  • for 循环的主体仅在条件为true 时执行。 i&lt;=100000 i%321==0 是否会在i=10000 时为真?
  • 语法没有问题, 只是你的 condition 永远不是 true. 如果语法有问题,编译器会告诉你你是这样的。

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


【解决方案1】:

一旦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);
}

【讨论】:

    【解决方案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);
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多