2017-10-21 232 views
-1

我必須創建一個程序,從用戶獲取範圍,然後添加範圍中的每個偶數並打印到屏幕。我正在努力弄清楚如何在for循環中添加每個數字。如果範圍是5到10,屏幕應該打印24作爲答案。以下是我的代碼。如何使用for循環在範圍中添加偶數

//worksheet 4 - question 3 
//asks user for a range. Adds even numbers in range and prints their sum. 

import java.util.Scanner; 

class P3LoopRange 
{ 
    public static void main(String[] args) 
    { 
     Scanner input = new Scanner(System.in); 

     int initial, finalValue; 

     System.out.print("Enter a start value: "); 
     initial = input.nextInt(); 

     System.out.print("Enter a second value: "); 
     finalValue = input.nextInt(); 

     while (finalValue <= initial) 
     { 
      System.out.println("Second value must be larger than start value."); 
      System.out.print("Enter a second value: "); 
      finalValue = input.nextInt(); 
     } 

     int range = finalValue - initial; 

     int x = 0 

     for (int i = initial; i <= finalValue; i++) 
     { 
      if (i%2==0) 
      { 
       int x = x+i; 

      } 
     } 
     System.out.printf(x); 
    } 
} 
+0

不要在if語句再次x聲明。 – Tacolibre

回答

1

您聲明瞭兩次x局部變量。
你不能這樣做,因爲重複的局部變量是不合法的。
此外,在循環中聲明它會在每次迭代時被覆蓋。
所以,只要在循環之前聲明它,它應該沒問題。

int x = 0; 

for (int i = initial; i <= finalValue; i++) 
{ 
    if (i%2 == 0) 
    { 
     x = x + i; 

    } 
} 
+0

謝謝。我已經嘗試過,但仍然收到退出代碼爲1的錯誤。我的最終打印語句是否在正確的位置? –

+0

這是在正確的地方。它是用'printf()'編譯的嗎?它不應該。你應該使用'print()'而不是'printf()'來打印一個'int'。 – davidxxx

+0

我不知何故刪除了一個分號。謝謝你的幫助。 –

1

變化int x = x+i;x=x+i;。這裏您每次重新初始化x

1

問題是:int x = x+i;

只是刪除int,你的問題就解決了