从用户处获得整数并找到平方根后,我需要找到从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 8流,那么您将能够以更直接的方式完成此操作,而不需要传统的for
循环:
IntStream.range(0, scanner.nextInt())
.map(Math::sqrt).forEach(System.out::println);
如果你不熟悉流,这个语句可以解释为"创建一个从0到输入数字的整数流;将每一个整数映射到它自己的平方根;打印流中的每个数字
虽然语法看起来有点棘手,但值得习惯使用它。
循环内递减1
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--;
}
在循环前获取用户输入,并递减变量i--
。
真正的解决方案是不只是发布代码并期望它能工作,而是应该在精神上或纸上遍历代码,以便在它们发生时思考其步骤。同时学习Java操作符,特别是++
和--
操作符,充分理解它们的作用