2015-10-15 33 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到輸入數字的整數流;將這些整數映射到它自己的平方根;打印流中的每個數字」。

雖然語法看起來有點棘手,但它已經習慣了使用它。