【问题标题】:How to print each number of a given number separately?如何分别打印给定数字的每个数字?
【发布时间】:2019-11-13 06:17:53
【问题描述】:

我编写了一个代码,应该分别打印每个数字。这是一个例子。

printDigits(1362) prints
2
6
3
1

printsDigits(985) prints
5
8
9

您可以使用/ 10% 10 将数字拆分为数字。

我已经按照我被教导的方式开始了一些代码,但我不确定如何处理其他变量。 请看:

public class Main {

  public static void main(String[] args) {
    System.out.println(printDigits(1362));
    System.out.println(printDigits(985));
    }

  public static int printDigits(int x){
    int y = x % 10;
    while (x > 0){
      x = y;
      System.out.println(x);
      x = x / 10;
    }
   return x;
   }
}

【问题讨论】:

  • Java != JavaScript
  • @roxxy 你的问题到底是什么?
  • int y = x % 10; 需要在循环内。去掉x = y,把System.out.println(x)改成System.out.println (y)
  • 还有你为什么要return x

标签: java while-loop module public


【解决方案1】:

为什么不将参数 x 转换为字符串,然后读取字符串中的每个字符,因为字符串是字符数组。如果输出必须是 int,则将 Char 转换为 int。

【讨论】:

  • 我认为这是最好的
【解决方案2】:

printDigits 方法应该是这样的:

public static void printDigits(int x) {
    int y;
    while (x > 0) {
        y = x % 10;
        System.out.println(y);
        x = x / 10;
    }
}

而方法的调用会是这样的:

printDigits(1362); // without the System.out.println()

【讨论】:

    【解决方案3】:

    有多种方法可以达到这样的效果。您可以更好地了解这些answers中的所有解决方案。

    【讨论】:

      【解决方案4】:
      public static void printDigits(int num) {
          while(num>0) {
              int remainder = num%10;
              num = num/10;
              System.out.println(remainder);
              printDigits(num);
          }
      
      }
      

      您可以使用递归来提高效率。

      【讨论】:

        【解决方案5】:

        您需要在循环内写入int y = x % 10; 以“拉开”每个数字并打印您“拉出”的数字y。 删除函数调用周围的System.out.println。 您不需要返回数字,因此您可以将返回类型更改为void

        public class Main {
            public static void main(String[] args) {
                printDigits(1362);
                System.out.println();
                printDigits(985);
            }
        
            public static void printDigits(int x) {
                while (x > 0) {
                    int y = x % 10;
                    System.out.println(y);
                    x = x / 10;
                }
            }
        }
        

        【讨论】:

        • void 方法如何返回值?
        • 不是返回值。该功能已经在打印数字。所以你不需要。
        • return x在这里做什么?
        猜你喜欢
        • 1970-01-01
        • 2019-02-26
        • 1970-01-01
        • 2016-08-25
        • 2018-12-02
        • 1970-01-01
        • 2020-02-27
        • 2011-08-25
        • 1970-01-01
        相关资源
        最近更新 更多