用户输入的平方根递减

Square root decrement from user input

从用户那里得到一个整数并找到平方根后,我需要找到从 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);
}

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

真正的 解决方案不仅是 post 代码并期望它能工作,而是你应该在头脑中或在纸上仔细检查你的代码以思考它正在发生的步骤。还要研究 Java 运算符,尤其是 ++-- 运算符,并充分理解它们的作用。

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

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

如果你不熟悉流,这个语句可以解释为"create a stream of integers from 0 to the input number; map each of these integers to its own square root; print each number in the stream"。

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

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