【问题标题】:Square root decrement from user input用户输入的平方根递减
【发布时间】:2015-10-15 02:03:50
【问题描述】:

从用户那里得到一个整数并找到平方根后,我需要找到从 i 到 0 的每个数字的平方根。我无法弄清楚如何正确减少输入以便打印出平方根新行中的每个数字。如果我的标题不够具体,我深表歉意,我在尝试描述这个问题时遇到了麻烦。

public class Number {

    public static void main(String[] args) {

    int i = 1;

    Scanner scnr = new Scanner(System.in);
    System.out.print("Please enter a number: ");


    while (i >= 1)
    {

        i = scnr.nextInt();
        System.out.println(Math.sqrt(i));
        i++;
    }
    System.out.println(i);
}

【问题讨论】:

    标签: java user-input square-root decrement


    【解决方案1】:

    如果您习惯使用 Java 8 流,那么您将能够以更直接的方式执行此操作,而无需传统的 for 循环:

    IntStream.range(0, scanner.nextInt())
        .map(Math::sqrt).forEach(System.out::println);
    

    如果您不熟悉流,则该语句可以解释为“创建一个从 0 到输入数字的整数流;将这些整数中的每一个映射到自己的平方根;打印流中的每个数字”。

    虽然语法看起来有点棘手,但值得习惯使用它。

    【讨论】:

      【解决方案2】:

      在循环中递减 i

      int i = 0;
      Scanner scnr = new Scanner(System.in);
      System.out.print("Please enter a number: ");
      i = scnr.nextInt();
      while (i >= 1)
      {
          System.out.println(Math.sqrt(i));
          i--;
      }
      

      【讨论】:

        【解决方案3】:

        在循环之前获取用户输入,并减少变量i--

        真正的解决方案不仅仅是发布代码并期望它能够工作,而是您应该在头脑中或在纸上仔细检查您的代码,以便在它们发生时仔细考虑它的步骤。还要学习Java操作符,尤其是++--操作符,并充分理解它们是动作。

        【讨论】:

        • 谢谢,我之前有正确的代码,但我似乎在路上的某个地方弄糊涂了。
        • @FilKuzmanovski:至少可以说非常困惑。为什么使用++
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多