【问题标题】:Java For-Loop ErrorJava For 循环错误
【发布时间】:2011-11-20 15:28:35
【问题描述】:

我正在尝试打印所有不是 7 或 9 倍数的奇数。它的工作原理是查看除以 2 时余数是否首先不是 0,给出奇数。

但是当我把它显示数字时,如果它们不是 7 的倍数,它只会显示所有奇数,我犯了错误吗?

public class NoMultiples7and9 {

    public static void main(String[] args) {

        for (int i = 1; i <= 30; i++) {

            if (i % 2 != 0) {

                if (i % 7 != 0 || i % 9 != 0) {

                    System.out.println(i);
                }
            }
        }
    }
}

【问题讨论】:

  • 这看起来像是作业,所以我只是给个提示。如果 i 是 7 的倍数(例如 21),i % 7 !=0 || i % 9 != 0 会评估什么?它应该评估什么?让它正常工作,其余的应该会掉出来。
  • 它会打印它,因为虽然 21 可以被 7 整除,但它不能被 9 整除,所以我需要将它设置为它不能被 7 整除且不能被 9 整除。

标签: java if-statement for-loop


【解决方案1】:

更改您的代码:

for (int i = 1; i <= 30; i = i + 2) {
   if (i % 7 != 0 && i % 9 != 0) {
      System.out.println(i);
   }
}

请注意使用&amp;&amp; (AND) 而不是|| (OR) 以及i % 2 的无用之处,因为您可以通过稍微更改for 仅循环奇数循环。

【讨论】:

    【解决方案2】:

    您需要在比较中使用 AND 而不是 OR。在i % 7 != 0 || i % 9 != 0的比较中,即使i mod 7 为0,i mod 9 也可能不是,反之亦然。

    【讨论】:

    • 关于家庭作业的问题更喜欢学习如何钓鱼类型的答案,而不是免费赠送鱼。
    【解决方案3】:

    您的内部 if 语句是错误的,它将导致打印所有不能被 7 和 9 整除的奇数。我敢打赌,如果您将循环更改为 63,它将不会打印 63。最初的 % 2 检查也不需要。

    public class NoMultiples7and9 {
    
        public static void main(String[] args) {
    
            for (int i = 1; i <= 30; i++) {
    
                if (i % 7 != 0 && i % 9 != 0) {
    
                    System.out.println(i);
    
                }
            }
        }
    }
    

    【讨论】:

    • 关于家庭作业的问题更喜欢学习如何钓鱼类型的答案,而不是免费赠送鱼。
    【解决方案4】:
    for (i = 1; i <= 30; i++) {  
            if (i % 2 != 0) {
                if(i % 7 != 0) {
                    if(i % 9 != 0)
                        System.out.println(i);
                }
    
            }
     }
    

    【讨论】:

    • 这个方案是不是有点难看(我的意思是嵌套if太没必要了)?
    • 没错,但你教的是非常丑陋的做法。要执行 5 + 3,您还可以使用 a = 5 for(i = 1; i
    • 这是一个家庭作业问题,这在教学上很麻烦。
    猜你喜欢
    • 1970-01-01
    • 2011-10-23
    • 2018-07-19
    • 1970-01-01
    • 2016-08-15
    • 2016-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多