从用户获得一个整数并找到平方根后,我需要找到从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);
}
答案 0 :(得分:1)
如果您习惯使用Java 8流,那么您将能够以更直接的方式执行此操作,而无需传统的for
循环:
IntStream.range(0, scanner.nextInt())
.map(Math::sqrt).forEach(System.out::println);
如果您不熟悉流,则此语句可以解释为"创建从0到输入数的整数流;将这些整数中的每一个映射到它自己的平方根;打印流中的每个数字"。
虽然语法看起来有点棘手,但值得习惯使用它。
答案 1 :(得分:0)
获取用户输入之前循环,并递减变量i--
。
真正的解决方案不仅仅是发布代码并期望它能够运行,而是您应该在思想或书面上仔细阅读代码,以便在它们发生时仔细考虑它们的步骤。还要研究Java运算符,尤其是++
和--
运算符,并充分理解它们的行为。
答案 2 :(得分: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--;
}