【问题标题】:How do i return the value of count from my while loop in Java如何从 Java 中的 while 循环返回计数值
【发布时间】:2020-06-18 17:04:47
【问题描述】:

我是编码新手,我需要有一个 return 语句,但我正在努力解决如何从我的 while 循环中返回 count 的值。我把我得到的图片的链接加上我的代码在下面。

我还添加了“is factor of number” + count 的打印输出,这样我就可以看到在 while 循环期间 count 在做什么。我真正想做的是返回这些值,所以当我点击运行这些值时,只有这些值出现。

这是我的代码:

package allFactors;

public class AllFactors {

    public static void main(String[] args) {
        System.out.println(printFactors(25));
    }

    public static int printFactors(int number) {
        if (number < 1) {
            System.out.println("Invalid Value ");
        }

        int count = 0;
        while (count <= number) {
            count++;

            if (number % count == 0) {
                System.out.println(count + " is factor of number ");
                continue;
            }
        }
        return count;
    }
}

我的CURRENT输出如下:

1 是数的因数

5 是数的因数

25 是数的因数

26

  • 我只放了 system.out.println(count + " is factor of number ");因为 我想看看我的计数值是多少,现在我不想返回计数;因为那只给了我 26,我只想返回 1、5 和 25。因为这些数字都是 25 的因数;一旦我能做到这一点,我将删除我的 system.out.println(count + " is factor of number ");行代码,因为它不是必需的。我希望这个问题有意义

期望的输出

1

5

25

【问题讨论】:

  • 请添加您当前和所需的输出。
  • 我当前的输出是:1 是数字 5 的因数 是数字 25 的因数是数字 26 的因数 所需的输出是:1 5 25
  • 由于某种原因,我无法以更易于理解和更真实的视图输入或复制粘贴我的输出,我在原始问题中添加了结果,它与我在屏幕上看到的非常接近,我希望你能看到它在那里,它有帮助。
  • java 中的函数只能返回一个值/对象。如果你想从一个函数返回多个值,你必须创建一个包含所有值的集合并返回。

标签: java while-loop


【解决方案1】:

这里要返回数字的所有因数: 所以你可以使用列表来存储所有因素,然后返回该列表并打印它,代码是这样的 -

    package allFactors;

    public class AllFactors {
       public static void main(String[] args) {
           printFactors(32).forEach(System.out::println);
       }

       public static List<Integer> printFactors(int number) {
           if (number < 1) {
                System.out.println("Invalid Value ");
           }
           List<Integer> all_factors = new ArrayList<>();
           int count = 0;
           while (count <= number) {
               count++;
               if (number % count == 0) {
                   all_factors.add(count);
                   System.out.println(count + " is factor of number ");
                   continue;
               }
           }
          return all_factors;
      }
    }

【讨论】:

    【解决方案2】:

    return 就像你的函数的输出。在你说的代码中return 0,所以无论如何它只会打印0。将其更改为return count;就是你的做法。

    【讨论】:

      【解决方案3】:

      只返回方法末尾的计数,如下所示

      public static int printFactors(int number) {
          if (number < 1) {
              System.out.println("Invalid Value ");
          }
      
          int count = 0;
          while (count <= number) {
              count++;
      
              if (number % count == 0) {
                  System.out.println(count + " is factor of number ");
                  continue;
              }
          }
          return count;
      }
      

      【讨论】:

      • 请回头看看我刚刚更新的问题,感谢您的帮助!
      【解决方案4】:

      如果你想返回所有需要使用集合的值,请检查下面的代码

      package allFactors;
      
      import java.util.ArrayList;
      import java.util.List;
      
      public class AllFactors {
      
      public static void main(String[] args) {
          System.out.println(printFactors(32));
      }
      
      public static List<Integer> printFactors(int number) {
          if (number < 1) {
              System.out.println("Invalid Value ");
          }
          List<Integer> factors = new ArrayList<>();
          int count = 0;
          while (count <= number) {
              count++;
      
              if (number % count == 0) {
                  factors.add(count);
                  System.out.println(count + " is factor of number ");
              }
          }
          return factors;
       }
      }
      

      【讨论】:

        猜你喜欢
        • 2021-05-30
        • 2016-01-30
        • 1970-01-01
        • 2016-05-29
        • 1970-01-01
        • 1970-01-01
        • 2013-01-26
        • 1970-01-01
        • 2019-03-31
        相关资源
        最近更新 更多