用户输入的平方根减量

问题描述 投票:0回答:4

从用户那里获取一个整数并找到平方根后,我需要找到从 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
4个回答
1
投票

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

for
循环:

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

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

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


0
投票

在循环内递减 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--;
}

0
投票

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

真正的解决方案不仅仅是发布代码并期望它能够工作,而是您应该在脑海中或在纸上浏览代码,在其发生时思考其步骤。还要研究 Java 运算符,尤其是

++--

 运算符,并充分理解它们的操作。

您可以使用函数接口:::

0
投票
Function<Double,Double> sqrtFunction = (Double x) -> Math.sqrt(x); double squareRoot = sqrtFunction.apply(number); System.out.println("Square root of"+number+"is:"+squareRoot);


© www.soinside.com 2019 - 2024. All rights reserved.