【问题标题】:How would I generate the following sequence in Java using For Loops?如何使用 For 循环在 Java 中生成以下序列?
【发布时间】:2016-12-26 23:58:02
【问题描述】:

身体

当它从 - 生成时我可以解决它

【问题讨论】:

    标签: java loops for-loop


    【解决方案1】:

    在您的 for 循环中,添加 if 语句以跳过 0。

    【讨论】:

      【解决方案2】:

      应该这样做

      public static void main(String[] args)
      {
      
          int start = -20;
          int end = 20;
          int step = 5;
      
          for(int i = start; i <= end; i+=step)
          {
            if(i != 0)
            {
              System.out.println(i);
            }
      
          }
      }
      

      现在它应该对除 0 以外的任何其他范围都很灵活

      或者你可以去

      for(int i = -20; i <= 20; i+=5)
      {
          if(i != 0)
          {
            System.out.println(i);
          }
      
      }
      

      【讨论】:

      • 这将包括0
      • 现在删除 0 @ElliottFrisch
      • 好奇:为什么上限是变量,而下限和增量是文字?为什么将其命名为total,因为它似乎并不表示任何事物的总和?
      • 为灵活性编辑@Andreas
      【解决方案3】:

      要么使用单个 for 循环并为if 添加if 测试,要么使用两个 循环。喜欢,

      for (int i = -20; i < 0; i += 5) {
          // -20, -15, -10, -5
      }
      for (int i = 5; i <= 20; i += 5) {
         // 5, 10, 15, 20
      }
      

      for (int i = -20; i <= 20; i += 5) {
         if (i != 0) {
             // ...
         }
      }
      

      【讨论】:

        【解决方案4】:

        为什么不直接暴力破解呢?

        int [] sequence = {-20, -15, -10, -5, 5, 10, 15, 20};
        for(int i : sequence ){
            System.out.println(i);
        }
        

        或者,从循环体中消除if

        for (int i = -20; i <= 20; i += (i == -5) ? 10 : 5) {
            // Do whatever you need with i, like System.out.println(i);
        }
        

        或者,如果我们想用if 声明变得愚蠢:

        for (int i = -20; i <= 20; i++) {
            if (i != 0 && i % 5 == 0) {
                // Do whatever you need with i, like System.out.println(i);
            }
        }
        

        【讨论】:

        • OP 没有提到打印。
        • @shmosel 有问题吗?您是否认为 OP 很难确定 println 是他们代码的占位符?你认为他们会哭泣和呻吟,“如果这种方法只适用于其他而不是打印!哦,我有祸了。”?
        • @beaker 考虑到 OP 正在尝试生成一个序列,占位符是 int sequence = {-20, -15, -10, -5, 5, 10, 15, 20},这可能对 OP 没有任何帮助。之后的事情完全无关紧要。
        • @shmosel 啊,所以您假设序列是目标,而不是循环遍历序列值。明白了。
        • @beaker 我所做的只是阅读帖子标题。也许您还有其他方法?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-16
        • 2020-04-06
        • 1970-01-01
        • 2018-12-01
        • 2017-09-05
        • 2021-01-14
        相关资源
        最近更新 更多