2015-10-15 40 views
-3

从用户得到一个整数并找到平方根后,我需要找到每个数的平方根,从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

递减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

谢谢你,我以前有正确的代码,但我似乎沿途某处迷惑自己。 – kuzman

+0

@FilKuzmanovski:很不好意思说。为什么'++'使用? –

+0

我误解了这个问题,它从那里分崩离析。 – kuzman

1

如果您习惯使用Java 8流,那么你就可以做到这一点更直接的方式,而无需传统的for循环:

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

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

虽然语法看起来有点棘手,但它已经习惯了使用它。